다음과 같은 사운드 관련 ActionScript 3.0 API에는 보안 제한 사항이 있습니다.
-
SoundMixer.computeSpectrum()
메서드 - 사운드 파일과 동일한 보안 샌드박스에서 실행되는 코드를 항상 허용합니다. 다른 샌드박스에서 실행되는 코드에 대해서는 보안 확인을 실행합니다.
-
SoundMixer.stopAll()
메서드 - 사운드 파일과 동일한 보안 샌드박스에서 실행되는 코드를 항상 허용합니다. 다른 샌드박스의 파일에 대해서는 보안 확인을 실행합니다.
-
Sound 클래스의
id3
속성 - 사운드 파일과 동일한 보안 샌드박스에 있는 SWF 파일을 항상 허용합니다. 다른 샌드박스에서 실행되는 코드에 대해서는 보안 확인을 실행합니다.
모든 사운드에는 내용 샌드박스와 소유자 샌드박스의 두 가지 관련 샌드박스가 있습니다.
-
사운드의 원래 도메인에 의해 내용 샌드박스가 결정되며 여기에서 사운드의
id3
속성과
SoundMixer.computeSpectrum()
메서드를 통해 사운드에서 데이터를 추출할 수 있는지 여부가 결정됩니다.
-
사운드 재생을 시작한 객체에 의해 소유자 샌드박스가 결정되며 여기에서
SoundMixer.stopAll()
메서드를 사용하여 사운드를 중단할 수 있는지 여부가 결정됩니다.
Sound 클래스의
load()
메서드를 사용하여 사운드를 로드하는 경우 SoundLoaderContext 객체인
context
매개 변수를 지정할 수 있습니다. SoundLoaderContext 객체의
checkPolicyFile
속성을
true
로 설정하면 런타임에서 사운드가 로드되는 서버에 URL 정책 파일이 있는지 확인합니다. 정책 파일이 있고 이 파일이 로드하는 코드의 도메인을 허용할 경우, 해당 코드는 Sound 객체의
id
속성에 액세스할 수 있고, 그렇지 않으면 액세스할 수 없습니다. 또한
checkPolicyFile
속성을 설정하여 로드된 사운드에
SoundMixer.computeSpectrum()
메서드를 사용할 수 있습니다.
하나 이상의 사운드 소유자 샌드박스를 호출자에서 액세스할 수 없어
SoundMixer.stopAll()
메서드 호출 시 모든 사운드가 중단되지 않는지 여부를
SoundMixer.areSoundsInaccessible()
메서드를 사용하여 확인할 수 있습니다.
SoundMixer.stopAll()
메서드를 호출하면
stopAll()
의 호출자와 동일한 소유자 샌드박스에 있는 사운드를 중단할 수 있습니다. 또한
Security.allowDomain()
메서드를 호출한 SWF 파일에서 재생을 시작한 사운드를 중단하여
stopAll()
메서드를 호출하는 SWF 파일의 도메인에 액세스를 허용할 수 있습니다. 다른 사운드는 중단되지 않으며, 이 사운드는
SoundMixer.areSoundsInaccessible()
메서드를 호출하여 확인할 수 있습니다.
computeSpectrum()
메서드를 호출하려면 재생되는 모든 사운드가 해당 메서드를 호출하는 객체와 동일한 샌드박스에 있거나 또는 호출자의 샌드박스에 액세스 권한을 부여한 소스에 있어야 합니다. 그렇지 않으면 SecurityError 예외가 발생합니다. SWF 파일의 라이브러리에 포함된 사운드에서 로드된 사운드의 경우, 로드된 SWF 파일에서
Security.allowDomain()
메서드를 호출하면 권한이 부여됩니다. SWF 파일이 아닌 소스에서 로드된 사운드의 경우(로드된 mp3 파일 또는 비디오 파일에서 시작), 소스 서버의 URL 정책 파일에서 로드된 미디어의 데이터에 대한 액세스 권한을 부여합니다.
자세한 내용은
제작자(개발자) 컨트롤
및
웹 사이트 컨트롤(정책 파일)
을 참조하십시오.
RTMP 스트림에서 사운드 데이터에 액세스하려면 서버에 대한 액세스를 허용해야 합니다. 서버측 ActionScript
Client.audioSampleAccess
속성을 사용하여 Flash Media Server에 있는 특정 디렉토리에 대한 액세스를 허용합니다. 자세한 내용은
서버측 ActionScript 언어 참조 설명서
를 참조하십시오.