Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.06.2006, 15:41
Angelo Angelo вне форума
Прохожий
 
Регистрация: 04.06.2006
Сообщения: 2
Репутация: 10
По умолчанию Помогите начинающему разобраться с компонентами звука (преобразование данных)

Помогите начинающему разобраться с компонентами 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  
Старый 05.06.2006, 13:49
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
Восклицание !

Компоненты такие к сожалению я не знаю....
глянь тут(другие компоненты)
http://www.torry.net/
http://www.un4seen.com/

Извини что немного не по теме...
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #3  
Старый 05.06.2006, 19:31
Angelo Angelo вне форума
Прохожий
 
Регистрация: 04.06.2006
Сообщения: 2
Репутация: 10
По умолчанию

2Ferra
Могу выслать компоненты TEnhWaveIn/Out, если интересно конечно....
Ответить с цитированием
  #4  
Старый 05.06.2006, 21:57
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию ?

Пресылай если не лень... Мож разберусь - отвечу на вопрос.

P>S> Забыл мыло: Ferra@tut.by
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.

Последний раз редактировалось Ferra, 06.06.2006 в 13:26.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter