2010-07-30 87 views
0

我正在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(); 
    } 
} 

回答

0

这将取决于摄像头驱动程序 - Silverlight的将有超过这个没有控制权。

+1

当我录制音频,录音机,指示灯不亮。所以我担心Silverlight会发生过度简化。 – roufamatic 2010-07-30 22:59:50

+0

你确定你是从录音机的网络摄像机录制的吗? – AdamC 2010-07-31 01:53:39

+0

我没有试图从网络摄像头录制音频,我试图从默认的音频设备上录制它。无论如何,我的摄像头是集成的,没有麦克风。 – roufamatic 2010-07-31 17:54:49

0

我猜它与你使用CaptureSource有关。微软的web site claims说:

Silverlight 4层中的API仅在视频场景 其中音频可能不相关使用 CaptureSource。

有没有办法在没有创建自己的CaptureSource的情况下获取音频?

1

即使您不告诉它,CaptureSource也会经常抓取默认的视频输入设备。虽然您没有使用相机,但Silverlight确实正在访问它。希望MS能够在更高版本的Silverlight中修复这种奇怪的行为。

在此期间,只要明确设置VideoCaptureDevice为null:

var _audioCaptureSource = new CaptureSource {VideoCaptureDevice = null}; 
+0

我离这个项目很远,所以我无法验证这是正确的。如果我有机会,我会尝试一下。感谢您的答复! – roufamatic 2011-01-10 18:54:12

相关问题