2010-07-30 131 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