Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как разобрать Wav файл 
:(
    Опции темы
leon2009
  Дата 16.3.2023, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 26.3.2016

Репутация: нет
Всего: 1



Здравствуйте! примеров много как вытащить заголовки из wav, НО я сомневаюсь те ли данные я вытаскиваю:
пр: 1
Код

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;

результат:
Цитата

176400
16
44100
2

или этот сразу в графику рисует:
Код

const
  data_chunk_position= smallint(2);
  buffersize = 256;
var
  memstr:TMemoryStream;
  //buf:array [1..56] of byte;
  buf:array [1..buffersize] of byte;
  Volume:array [1..buffersize] of byte;
  i,ch:integer;
  readed:integer; Buffer:integer;  buf16: ^smallint;
begin
  memstr:=TMemoryStream.Create;
  memstr.LoadFromFile('sound08.wav');
  memstr.Seek(data_chunk_position, soFromBeginning);
 Chart1.Series[0].Clear;
 readed:=memstr.Read(buf,sizeof(buf));
  i:=1;
  repeat
    Chart1.Series[0].Add(buf[i]);
   // memo1.Lines.Add(inttostr(buf[i]));
    if buf[i]<=70 then  edit1.Text:='baraban' else edit1.Text:='violin';
    inc(i);
  until i>readed;
 новички не за путайтесь в варе много лишнего....  
я хотел получить такой результат:
Project1
Видео = если страшно открывать EXE
САМ ЗВУК
НО как это сделать пока играет звук, а не сразу выводить результаты??? 
а то получается результаты вывел.
как узнать если играет скрипка (частота), то вывести в мемо скрипка??? как в примере....  smile 
PM MAIL   Вверх
Seenkao
Дата 22.3.2023, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 20.12.2020

Репутация: нет
Всего: 1



Непонятно, что ты хочешь сделать. Заголовки файла вытащить?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1102 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.