
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[35.175.191.46] |
![]() |
|
![]() |
|
|
Здравствуйте! как отобразить частоту WAV в реальном времени, без всяких DLL
![]() пример закрепил, но для WINDOWS ![]() ![]() yandex Сюда закачал т.к. на форум не грузится Добавлено а, а хотел для андройд кросплатформа |
![]() |
Сообщ.
#2
,
|
|
Странная просьба, непонятный exe'шник в архиве.
Нет уж увольте. |
Сообщ.
#3
,
|
|
|
Цитата leon2009 @ частоту WAV А что это такое? |
Сообщ.
#5
,
|
|
|
я по другому не знаю как объяснить
|
Сообщ.
#6
,
|
|
|
Есть ролик, нужна диаграмма частоты. Так?
|
Сообщ.
#7
,
|
|
|
ролик я сделал, чтобы показать, что нужно. (или ссылка на файл с программой)
не обязательна диаграмма: можно просто в label вывести??? пр: если барабан то это низкая частота если скрипка то это высокие частоты. Спасибо! |
Сообщ.
#8
,
|
|
|
есть звук сначала играет барабан, потом скрипка. программа различает что сначала играет барабан, а потом скрипка.
наверное по частоте т.к. барабан это одна частота, а скрипка это другая (высокая). я не могу сообразить как эт сделать. |
Сообщ.
#9
,
|
|
|
это для windows так я нахожу данные из файла:
![]() ![]() procedure TForm1.OpenMedia(WaveFile: string); var MyOpenParms: TMCI_Open_Parms; begin with MyOpenParms do begin dwCallback := Handle; // TForm1.Handle lpstrDeviceType := PChar('WaveAudio'); lpstrElementName := PChar(WaveFile); end; {with MyOpenParms} dwFlags := MCI_WAIT or MCI_OPEN_ELEMENT or MCI_OPEN_TYPE; MyError := mciSendCommand(0, MCI_OPEN, dwFlags, Longint(@MyOpenParms)); // one could use mciSendCommand(DevId, here to specify a particular device if MyError = 0 then FDeviceID := MyOpenParms.wDeviceID else raise Exception.Create('Open Failed'); end; function TForm1.GetStatus(StatusRequested: DWORD): Longint; var MyStatusParms: TMCI_Status_Parms; begin dwFlags := MCI_WAIT or MCI_STATUS_ITEM; with MyStatusParms do begin dwCallback := Handle; dwItem := StatusRequested; end; MyError := mciSendCommand(FDeviceID, MCI_STATUS, MCI_WAIT or MCI_STATUS_ITEM, Longint(@MyStatusParms)); if MyError = 0 then Result := MyStatusParms.dwReturn else raise Exception.Create('Status call to get status of ' + IntToStr(StatusRequested) + ' Failed'); end; procedure TForm1.CloseMedia; var MyGenParms: TMCI_Generic_Parms; begin if FDeviceID > 0 then begin dwFlags := 0; MyGenParms.dwCallback := Handle; // TForm1.Handle MyError := mciSendCommand(FDeviceID, MCI_CLOSE, dwFlags, Longint(@MyGenParms)); if MyError = 0 then FDeviceID := 0 else begin raise Exception.Create('Close Failed'); end; end; end; но они не меняются при проигрывание звука |
Сообщ.
#10
,
|
|
|
Это возможно если 2 разные записи есть у нас барабан и скрипка отдельно
|
Сообщ.
#11
,
|
|
|
да, один файл... сначала играет барабан, потом скрипка.
ЗВУК_ПРОСЛУШАТЬ Добавлено почти барабан = БАСС |
Сообщ.
#12
,
|
|
|
Это непросто - разделять звук
|
Сообщ.
#13
,
|
|
|
эт я понял...
![]() |
Сообщ.
#14
,
|
|
|
Надо 2 файла)
|