在Silverlight 4中访问麦克风时防止摄像头灯亮起
我正在Silverlight 4中编写一个小型录音机组件。它工作正常,但我注意到当我录制音频时,摄像头上的灯变成指示相机处于活动状态。在Silverlight 4中访问麦克风时防止摄像头灯亮起
虽然我知道我没有做任何阴险的摄像头,我的用户将有权利怀疑。是否有可能告诉Silverlight我只对麦克风访问感兴趣而不激活摄像头?这里
FWIW是我如何访问麦克风:
private CaptureSource _source = new CaptureSource();
private MemoryAudioSink _sink; // Inherits from AudioSink. Doesn't do much more
// than store PCM audio stream in memory
private void Record_Click(object sender, RoutedEventArgs e)
{
if ((CaptureDeviceConfiguration.AllowedDeviceAccess ||
CaptureDeviceConfiguration.RequestDeviceAccess()) &&
_source.State == CaptureState.Stopped)
{
_sink = new MemoryAudioSink();
_sink.CaptureSource = _source;
_source.Start();
}
}
这将取决于摄像头驱动程序 - Silverlight的将有超过这个没有控制权。
我猜它与你使用CaptureSource
有关。微软的web site claims说:
Silverlight 4层中的API仅在视频场景 其中音频可能不相关使用 CaptureSource。
有没有办法在没有创建自己的CaptureSource的情况下获取音频?
即使您不告诉它,CaptureSource也会经常抓取默认的视频输入设备。虽然您没有使用相机,但Silverlight确实正在访问它。希望MS能够在更高版本的Silverlight中修复这种奇怪的行为。
在此期间,只要明确设置VideoCaptureDevice为null:
var _audioCaptureSource = new CaptureSource {VideoCaptureDevice = null};
我离这个项目很远,所以我无法验证这是正确的。如果我有机会,我会尝试一下。感谢您的答复! – roufamatic 2011-01-10 18:54:12
当我录制音频,录音机,指示灯不亮。所以我担心Silverlight会发生过度简化。 – roufamatic 2010-07-30 22:59:50
你确定你是从录音机的网络摄像机录制的吗? – AdamC 2010-07-31 01:53:39
我没有试图从网络摄像头录制音频,我试图从默认的音频设备上录制它。无论如何,我的摄像头是集成的,没有麦克风。 – roufamatic 2010-07-31 17:54:49