2015-11-13 2 views
0

Я хочу проверить и написать, разрешен ли доступ к микрофону или нет в ActionScript 3, но теперь, если нет ошибки компиляции, он не спрашивает меня о доступе микрофона, но ничего не происходит, когда Я запускаю SWF-файл.Actionscript 3: Ошибка # 1009

Это мой код:

import flash.display.MovieClip; 
import flash.events.StatusEvent; 
import flash.media.Microphone; 


var mic:Microphone = Microphone.getMicrophone(); 

if(mic){ 
    mic.addEventListener(StatusEvent.STATUS, this.onMicStatus); 
} 

else{ 
    trace("No micro"); 
} 

function onMicStatus(event: StatusEvent): void { 
    if (event.code == "Microphone.Unmuted") { 
     trace("Microphone access was allowed."); 

    } else if (event.code == "Microphone.Muted") { 
    trace("Microphone access was denied."); 
    } 
} 
+0

используйте отладчик, чтобы получить фактический номер строки, это полезно. Вы также должны импортировать 'StatusEvent', а не только' Микрофон' (это, скорее всего, проблема). 'import flash.events.StatusEvent' – BadFeelingAboutThis

ответ

0

Ваша ошибка приходит из строки:

mic.addEventListener(StatusEvent.STATUS, this.onMicStatus); 

потому что Microphone.getMicrophone() может вернуться null:

Если Microphone.getMicrophone() возвращает нуль , либо микрофон используется другим приложением, либо нет установки микрофонов во главе с системой. Чтобы определить, установлены ли какие-либо микрофоны, используйте Microphone.names.length (микрофон без «s», в документе Adobe есть ошибка).

Таким образом, чтобы избежать этой ошибки, вы можете использовать простой if заявление:

if(mic){ 
    mic.addEventListener(StatusEvent.STATUS, this.onMicStatus); 
} 

Вы также можете использовать Microphone.names.length, чтобы проверить, если у вас есть микрофон, установленный (по крайней мере один) перед созданием Microphone объекта :

if(Microphone.names.length > 0){ 
    var mic:Microphone = Microphone.getMicrophone(); 
     mic.addEventListener(StatusEvent.STATUS, this.onMicStatus); 
} 

Edit:

Чтобы отобразить панель настроек микрофона проигрывателя Flash Player, которая позволяет пользователю выбрать микрофон, на который ссылается Microphone.getMicrophone, используйте Security.showSettings().

Чтобы отобразить панель Flash Player Настройки микрофона, вы можете использовать:

Security.showSettings(SecurityPanel.MICROPHONE); 

Надежда, которая может помочь.

+0

Ok. Я редактировал свой код. Теперь нет ошибки, но она не спрашивает меня о микрофоне. – MatR

+0

@MatR Для этого вы можете использовать 'Security.showSettings (SecurityPanel.MICROPHONE);', отредактированный ответ. – akmozo

Смежные вопросы