Microphone 클래스에는 생성자 메서드가 없습니다. 대신 다음과 같이 정적
Microphone.getMicrophone()
메서드를 사용하여 새 Microphone 인스턴스를 구합니다.
var mic:Microphone = Microphone.getMicrophone();
매개 변수 없이
Microphone.getMicrophone()
메서드를 호출하면 사용자 시스템에서 검색된 첫 번째 사운드 입력 장치가 반환됩니다.
시스템에는 둘 이상의 사운드 입력 장치가 연결되어 있을 수 있습니다. 응용 프로그램은
Microphone.names
속성을 사용하여 사용 가능한 모든 사운드 입력 장치의 이름 배열을 가져옵니다. 그런 다음 배열에 있는 장치 이름의 인덱스 값과 일치하는
index
매개 변수를 사용하여
Microphone.getMicrophone()
메서드를 호출할 수 있습니다.
시스템에 마이크 또는 기타 사운드 입력 장치가 연결되어 있지 않을 수도 있습니다.
Microphone.names
속성 또는
Microphone.getMicrophone()
메서드를 사용하여 사용자의 시스템에 사운드 입력 장치가 설치되어 있는지 여부를 확인합니다. 사용자의 시스템에 사운드 입력 장치가 설치되어 있지 않으면
names
배열 길이는 0이고
getMicrophone()
메서드가
null
값을 반환합니다.
응용 프로그램이
Microphone.getMicrophone()
메서드를 호출하면 Flash Player는 [Flash Player 설정] 대화 상자를 표시합니다. 이 대화 상자에서 사용자는 시스템의 카메라 및 마이크에 대한 Flash Player의 액세스를 허용 또는 거부할 수 있습니다. 이 대화 상자에서 [허용] 또는 [거부] 버튼을 클릭하면 StatusEvent가 전달됩니다. 다음 예제에서와 같이, 해당 StatusEvent 인스턴스의
code
속성은 마이크 액세스의 허용 또는 거부를 나타냅니다.
import flash.media.Microphone;
var mic:Microphone = Microphone.getMicrophone();
mic.addEventListener(StatusEvent.STATUS, this.onMicStatus);
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.");
}
}
StatusEvent.code
속성에는 "Microphone.Unmuted"(액세스가 허용된 경우) 또는 "Microphone.Muted"(액세스가 거부된 경우)가 포함됩니다.
사용자가 마이크 액세스를 허용 또는 거부할 때
Microphone.muted
속성은 각각
true
또는
false
로 설정됩니다. 그러나
muted
속성은 StatusEvent가 전달되기 전에는 Microphone 인스턴스에 설정되지 않으므로 응용 프로그램에서
Microphone.muted
속성을 확인하려면 또한
StatusEvent.STATUS
이벤트가 전달될 때까지 대기해야 합니다.
Flash Player에서 설정 대화 상자를 표시하려면 응용 프로그램 창의 크기는 최소한 215×138 픽셀 이상이 되어야 합니다. 그렇지 않으면 액세스는 자동으로 거부됩니다.
AIR 응용 프로그램 샌드박스에서 실행되는 내용은 마이크에 액세스하는 데 사용자의 권한을 얻을 필요가 없습니다. 따라서 마이크의 음소거 및 음소거 해제에 대한 status 이벤트는 전달되지 않습니다. 응용 프로그램 샌드박스 외부의 AIR에서 실행되는 내용은 사용자의 권한을 필요로 하므로 이러한 status 이벤트가 전달될 수 있습니다.