【问题标题】:Prevent webcam light from illuminating when accessing microphone in Silverlight 4在 Silverlight 4 中访问麦克风时防止网络摄像头灯亮起
【发布时间】:2011-03-23 11:59:39
【问题描述】:

我正在 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-4.0 webcam microphone


    【解决方案1】:

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

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

    var _audioCaptureSource = new CaptureSource {VideoCaptureDevice = null};
    

    【讨论】:

    • 我离这个项目很远,所以我无法验证这是正确的。如果有机会我会尝试一下。感谢您的回复!
    【解决方案2】:

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

    【讨论】:

    • 当我用录音机录制音频时,灯不亮。所以我担心 Silverlight 会过度简化。
    • 您确定要从录音机中的网络摄像头录制吗?
    • 我不是要从网络摄像头录制音频,而是要从默认声音设备录制它。无论如何,我的网络摄像头是集成的,没有麦克风。
    【解决方案3】:

    我猜它与您使用CaptureSource 有关。微软web site claims那个:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2016-11-20
      • 2017-10-10
      • 1970-01-01
      • 2021-01-26
      相关资源
      最近更新 更多