|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите начинающему разобраться с компонентами звука (преобразование данных)
Помогите начинающему разобраться с компонентами TEnhWaveIn(захват звука) и TEnhWaveOut (воспроизведение звука). Пытаюсь сделать простенький диктофончик: 10с записи (моно 16 бит) в массив и затем воспроизведение.
Запись: включаю по таймеру на 10 сек TEnhWaveIn, и по его событию(заполнение буфера-2048= 0.25сек) переписываю в большой массив. var Sound_array_index : Integer; Sound_array : array [0..80000] of SmallInt; // procedure TForm1.Audio_data(sender: TObject; data: PChar; size: Integer);var x : SmallInt; counter : Integer; beginfor counter := 0 to 2047 do begin x := SmallInt(data[counter]); Sound_array [Sound_array_index] := x; end; end; // Воспроизведение: по таймеру (каждые 0.25с) нужно записать кусок из большого массива в «EnhWaveOut1.playback(data: PChar; size: Integer )» С этим проблема, зависает, не знаю как правильно преобразовать данные из большого массива для записи в компонент TEnhWaveOut. procedure TForm1.Timer_end_play(Sender: TObject); varSnd_array : PChar; counter : Integer; beginSnd_array := ''; for counter := 0 to 2047 do beginSnd_array[counter] := Char(Sound_array [Sound_array_index + counter]); end; // EnhWaveOut1.playback(Snd_array, 2048); Sound_array_index := Sound_array_index + 2048; // if Sound_array_index > 80000 then begin Timer2.Enabled := False; EnhWaveOut1.close; Memo1.Lines.Add('Play stop'); end; end; Вся эта эпопея с большим массивом, чтоб мне было просто и удобно брать любой кусок данных(1 элемент массива =1 отсчёт звука) и пробовать различные алгоритмы компрессии/декомпрессии, но сейчас вот заготовку пытаюсь осилить…. |
#2
|
||||
|
||||
!
Компоненты такие к сожалению я не знаю....
глянь тут(другие компоненты) http://www.torry.net/ http://www.un4seen.com/ Извини что немного не по теме... Нет повести печальнее на свете, чем повесть о заклиневшем Resete. |
#3
|
|||
|
|||
2Ferra
Могу выслать компоненты TEnhWaveIn/Out, если интересно конечно.... |
#4
|
||||
|
||||
?
Нет повести печальнее на свете, чем повесть о заклиневшем Resete. Последний раз редактировалось Ferra, 06.06.2006 в 13:26. |