簡體   English   中英

手動彈出“安全性”對話框后,Flash麥克風錄制不起作用

[英]Flash Microphone Recording Not Working After Manually Popup the Security Dialog

基本上,我要嘗試的是檢查是否授予麥克風訪問權限,如果沒有,則顯示“安全性”對話框,並讓用戶在對話框中選擇“允許”訪問權限,以便下次用戶單擊錄制按鈕時,它不會顯示“安全性”框,並且錄制應立即生效。

在某些buttonClick事件處理程序中,我將這段代碼用於檢查麥克風訪問是否已取消靜音

var mic:Microphone = Microphone.getMicrophone();
if (mic == null) {
    return;
}
if (mic.muted) {
    Security.showSettings(SecurityPanel.PRIVACY);
    return;
}

//... Start recording using a library
  1. 如果一開始拒絕(或靜音)麥克風訪問,則執行buttonClick事件處理程序時,將顯示“安全性”框;

  2. 用戶選擇“允許”后,將使mic.muted = false ,因此,當用戶再次單擊該按鈕時,該框將不會顯示,這也是預期的;

  3. 但是,有時庫中的錄制功能將無法使用。 有時它仍然可以工作,但是如果右鍵單擊Flash應用程序,然后選擇“設置”以彈出“安全性”框,然后單擊“拒絕”,然后重復步驟1和2,您將始終在步驟3中看到該行為。 :錄制功能不起作用。

我檢查了要錄制的庫的源代碼,它也使用了var mic:Microphone = Microphone.getMicrophone(); 獲取並設置麥克風。

請幫忙。

這沒有任何意義:如果我移動var mic:Microphone = Microphone.getMicrophone(); 在處理程序之外,它可以工作:

var mic:Microphone = Microphone.getMicrophone();
private function buttonClickHandler():void
{
    if (mic == null) {
        return;
    }
    if (mic.muted) {
        Security.showSettings(SecurityPanel.PRIVACY);
        return;
    }

    //... Start recording using a library
}

這沒有任何意義,因為http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/media/Microphone.html

對Microphone.getMicrophone()的多次調用引用了同一麥克風。 因此,如果您的代碼包含行mic1 = Microphone.getMicrophone()和mic2 = Microphone.getMicrophone(),則mic1和mic2都引用同一(默認)麥克風。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM