Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];

Вниз

как снять звук с микрофона и тут же его выводить на колонки   Найти похожие ветки 

 
zvukoff   (2007-11-07 15:17) [0]

каким самым простым способом можна снять звук с микрофона и  сразу же его воспроизводить


 
Сергей М. ©   (2007-11-07 15:51) [1]

Два проводка, соединяющие микрофон с колонками, - куда уж проще)


 
zvukoff   (2007-11-07 16:28) [2]


>  самым простым способом

имеется ввиду програмно! с помощью Delphi! )


 
Сергей М. ©   (2007-11-07 16:38) [3]


> имеется ввиду програмно


Для этого и программу писать не надо - все это настраивается в виндовом микшере двумя кликами мыши.


 
zvukoff   (2007-11-07 17:55) [4]


> Сергей М. ©   (07.11.07 16:38) [3]
>
>
> > имеется ввиду програмно
>
>
> Для этого и программу писать не надо - все это настраивается
> в виндовом микшере двумя кликами мыши.


??????????????????????


 
Сергей М. ©   (2007-11-08 08:53) [5]

Правда, такая возможность напрямую зависит от возможностей конкретного  аудиочипсета


 
T54   (2007-11-08 18:06) [6]

С помощью DirectSHow строите граф - на входе мкрофон, на выходе SoundDevice


 
zvukoff   (2007-11-08 21:18) [7]

с микрофона я снял, хоть криво но для начала неплохо и снова проблема, все что снимается с микрофона пуляем по UDP
а вот как его там воспроизвести по получению, толком ничего не получается!
никогда не приходилось со звуком играться, извините! намекните или ответом или ссылкой!


 
Сергей М. ©   (2007-11-09 08:24) [8]


> как его там воспроизвести по получению, толком ничего не
> получается


Показывай как пробовал ..


 
zvukoff   (2007-11-09 10:49) [9]

примерно так, хотя как он работает понял еще смутно)

var
  Evt:THandle;
  Fmt:tWAVEFORMATEX;
  Hdr:TWaveHdr;
  WO:HWAVEOUT;
  FS:TFileStream;
  Data:Pointer;
  Size,i:Integer;
  ch:PChar;
begin

  FS:=TFileStream.Create("data.txt",fmOpenRead);
  Size:=FS.Size;
  GetMem(Data,Size);
try
  FS.ReadBuffer(Data^,Size);
  FS.Free;

  Evt:=CreateEvent(nil,False,False,nil);
  ZeroMemory(@Fmt,SizeOf(Fmt));
  ZeroMemory(@Hdr,SizeOf(Hdr));
  Fmt.wFormatTag:=WAVE_FORMAT_PCM;
  Fmt.nChannels:=1;
  Fmt.nSamplesPerSec:=44100;
  Fmt.nAvgBytesPerSec:=44100;
  Fmt.wBitsPerSample:=16;
  Fmt.nBlockAlign:=4;
  Fmt.cbSize:=SizeOf(Fmt);


  if waveOutOpen(@WO,0,@Fmt,Evt,0,CALLBACK_EVENT)<>MMSYSERR_NOERROR then Halt(1);
  Hdr.lpData:=Data;
  Hdr.dwBufferLength:=Size;
  waveOutPrepareHeader(WO,@Hdr,SizeOf(Hdr));
  ResetEvent(Evt);
  waveOutWrite(WO,@Hdr,SizeOf(Hdr));
  WaitForSingleObject(Evt,Infinite);
  waveOutUnprepareHeader(WO,@Hdr,SizeOf(Hdr));
  waveOutClose(WO);
  CloseHandle(Evt);
finally
  FreeMem(Data,Size);
end;


 
Сергей М. ©   (2007-11-09 10:53) [10]


> zvukoff   (09.11.07 10:49) [9]


И где в этом коде хоть какое-либо упоминание о UDP ?


 
zvukoff   (2007-11-09 11:13) [11]


> И где в этом коде хоть какое-либо упоминание о UDP ?


procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
 ABinding: TIdSocketHandle);
var
 ....
begin
 Size:=AData.size;
 GetMem(Data,Size);
try
 AData.ReadBuffer(Data^,Size);
...............
ну и далее уже все было...
подозреваю что все ето нужно вынести в отдельный поток


 
Сергей М. ©   (2007-11-09 11:27) [12]


> zvukoff   (09.11.07 11:13) [11]


Ты осознаешь, что UDP - протокол без гарантии доставки и без гарантии соблюдения исходного порядка отправляемых дейтаграмм в последовательности принимаемых ?


 
Dib@zol ©   (2007-11-09 11:29) [13]

Зато он быстрый, а потеря скажем десяти из 44 уровней сигнала, которые замеряются на микрофоне каждую 1/1000 секунды, не сможет на слух очень уж сильно ухудшить качество.


 
zvukoff   (2007-11-09 11:58) [14]


> Dib@zol ©   (09.11.07 11:29) [13]
>
> Зато он быстрый, а потеря скажем десяти из 44 уровней сигнала,
>  которые замеряются на микрофоне каждую 1/1000 секунды,
> не сможет на слух очень уж сильно ухудшить качество.

хотел тоже самое сказать, но уже нет сил)
да даже если убить каждый второй байт, да даже из четырех три то все равно качество звука для голоса сносно)


> Сергей М. ©   (09.11.07 11:27) [12]
>
>
> > zvukoff   (09.11.07 11:13) [11]
>
>
> Ты осознаешь, что UDP - протокол без гарантии доставки и
> без гарантии соблюдения исходного порядка отправляемых дейтаграмм
> в последовательности принимаемых ?


при чем протоколы в разделе MEDIA
????????????????????????


 
Сергей М. ©   (2007-11-09 12:08) [15]


> при чем протоколы в разделе MEDIA ?


А я откуда знаю при чем они тут ?

Судя по содержимому файла и по коду обработчика UDPRead ты не используешь никакие медиапротоколы - гоняешь по сети никак не обработанные PCM-данные


 
Сергей М. ©   (2007-11-09 12:12) [16]


> zvukoff


Жми сюда
http://www.droopyeyes.com

качай готовые компоненты и будь счастлив)


 
zvukoff   (2007-11-09 14:04) [17]


> Сергей М. ©   (09.11.07 12:12) [16]
>
>
> > zvukoff
>
>
> Жми сюда
> http://www.droopyeyes.com
>
> качай готовые компоненты и будь счастлив)

организовал в потоке, заработало
и звук нормальный и протокол ненадежный и нет качества доставки и без сторонних компонентов, прикол да
нет подсказать сразу звук в отдельный поток, так протокол какой, а негарантированная доставка, медиапротоколы, компоненты, код, про микшер и два проводка особенно мне понравилось)
хотя все равно спасиба за потраченное время!


 
Сергей М. ©   (2007-11-09 14:32) [18]


> организовал в потоке


Можно подумать, что изначально ты организовал всю эту петрушку не в потоке, а на Луне)


> звук в отдельный поток


Какая нафих разница, в каком потоке "звук" ?)


> прикол да


Угу.

Когда разведешь своего клиента и сервера по разным углам Тырнета, или когда  поднагрузишь чем-нибудь свою ЛВС посерьезней - вот тогда и будет "прикол")



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.006 c
11-1201117485
Vinum
2008-01-23 22:44
2009.05.31
Как скопировать рисунок из канвы в буфер


2-1239819150
Андрей (начинающий)
2009-04-15 22:12
2009.05.31
DrawGrid и рисование


15-1238567824
D@nger
2009-04-01 10:37
2009.05.31
Простое добавление ресурсов в проект


2-1240130471
Inko
2009-04-19 12:41
2009.05.31
Вопрос по StringGrid


15-1238162684
axis_of_evil
2009-03-27 17:04
2009.05.31
печать .pdf со смещением





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский