原創|使用教程|編輯:郝浩|2013-08-19 14:29:28.000|閱讀 371 次
概述:TVideoGrabber是一款支持包括C#、.NET、VB.NET、C++、Delphi、C++Builder和ActiveX平臺在內的視頻處理控件,不僅可以捕捉視頻,還可以作為多媒體播放器。本文將剖析TVideoGrabber的音頻捕捉設備。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
TVideoGrabber不僅可以捕捉視頻,還可以作為多媒體播放器,并支持包括C#、.NET、VB.NET、C++、Delphi、C++Builder和ActiveX平臺,本文將剖析TVideoGrabber的音頻捕捉設備。
音頻源
如果AudioSource = as_Default(默認值),視頻捕捉設備的音頻輸出將會用于記錄(如果這個設備公開一個的音頻輸出,比如一個DV camcorder),否則這個當前音頻捕捉設備的音頻輸出將會被使用。
如果AudioSource設置為as_UseExternalAudio,當前音頻捕捉設備將用于記錄,即使視頻捕捉設備有一個音頻輸出了。
音頻捕捉設備
當前音頻捕捉裝置是由AudioDevice選擇,這個是在AudioDevices列表中的一個索引,包含了AudioDevicesCount項目。
也可以通過使用FindIndexInListByName功能,按名稱的方式編程選擇audiop捕獲設備,比如:當前的音頻捕獲設備的名稱由AudioDeviceName報告。
VideoGrabber.AudioDevice := VideoGrabber.FindIndexInListByName (VideoGrabber.AudioDevices, 'name of my audio device', false, true);
AudioDevices 和 AudioDevices count在Delphi 和C++Builder中可以作為全局變量使用。
設備相關的屬性
當選中了一個音頻捕捉設備,與其設備相關的屬性會從注冊表重新導入,并發生OnAudioDeviceSelected事件,因此任何控件使用比如音頻輸出,需要從這個事件刷新。
音頻輸入
在選擇了音頻捕獲設備后,AudioInputs列表會返回對于這個音頻輸入可用的音頻輸出列表。通過分配在列表中的音頻輸入到音頻輸入設備,可以選擇一個音頻輸出。
音頻輸入電平
可以調整音頻輸入電平適應于AudioInputLevel(在0..65535中)范圍。
音頻輸入平衡
在32768...32767范圍中(中心點是0),音頻輸入平衡可以被調整來適應于AudioInputBalance。
音頻輸入是否可用,取決于音頻輸入。當運行預覽或是錄制時,如果音頻平衡可用,IsAudioInputBalanceAvailable會返回ts_True,如果不可用,就會返回ts_False。如果預覽和錄制停止的話,將會返回ts_Undefined。
音頻錄制
當啟用了 AudioRecording時,當前的音頻捕捉設備的錄制就會被激活。
音頻渲染
當啟用了 AudioDeviceRendering 時,就會激活音頻渲染。
音量可以調整適應于AudioVolume,音頻平衡適應于AudioBalance。
啟用/禁用的MuteAudioRendering屬性可以靜音。
這些設置僅影響渲染的平衡音量和音頻,而不是錄音的音量和平衡。
設備連接/斷開
當音頻捕捉設備連接或斷開時,會發生OnDeviceArrivalOrRemoval事件,這個事件在全局列表中的音頻捕捉設備的索引和名字。
一旦連接了一個音頻捕捉設備被斷開后,IsAudioDeviceConnected會返回true,直到這個設備被重新連接。
如果相關的設備被用于預覽或是錄制使用,當設備斷開連接的時候,這個OnDeviceLost事件就會發生,同時預覽和錄制也會停止。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件