0

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

3 回答 3

1

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

同时,只需将 VideoCaptureDevice 显式设置为 null:

var _audioCaptureSource = new CaptureSource {VideoCaptureDevice = null};
于 2010-12-23T08:35:56.690 回答
0

这将取决于网络摄像头驱动程序 - Silverlight 无法对此进行控制。

于 2010-07-30T22:54:20.573 回答
0

我猜它与您使用CaptureSource. 微软的网站声称

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

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

于 2010-07-31T01:59:34.157 回答