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报告。
1
|
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事件就会发生,同时预览和录制也会停止。