사운드 로드 및 재생 시의 보안 고려 사항

Flash Player 9 이상, Adobe AIR 1.0 이상

응용 프로그램의 사운드 데이터 액세스 기능은 Flash Player 또는 AIR 보안 모델에 따라 제한됩니다. 각 사운드에는 두 가지 보안 샌드박스의 제한 사항이 적용됩니다. 보안 샌드박스는 내용 자체에 대한 샌드박스("내용 샌드박스")와 사운드를 로드하여 재생하는 응용 프로그램 또는 객체에 대한 샌드박스("소유자 샌드박스")가 있습니다. 응용 프로그램 보안 샌드박스에 있는 AIR 응용 프로그램 내용의 경우 다른 도메인에서 로드된 사운드를 비롯한 모든 사운드를 응용 프로그램 보안 샌드박스의 내용에서 액세스할 수 있습니다. 그러나 다른 보안 샌드박스의 내용은 Flash Player에서 실행되는 내용과 동일한 규칙을 따릅니다. 전반적인 Flash Player 보안 모델 및 샌드박스 정의에 대한 자세한 내용은 보안 을 참조하십시오.

내용 샌드박스는 id3 속성 또는 SoundMixer.computeSpectrum() 메서드를 사용하여 사운드에서 세부 사운드 데이터를 추출할 수 있는지 여부를 제어하는 것으로, 사운드 파일 자체의 로드 또는 재생을 제한하지는 않습니다.

사운드 파일의 원본 도메인은 내용 샌드박스의 보안 제한 사항을 정의합니다. 일반적으로 사운드 파일을 로드하는 응용 프로그램 또는 객체의 SWF 파일과 동일한 도메인 또는 폴더에 사운드 파일이 있으면 응용 프로그램 또는 객체는 해당 사운드 파일에 액세스할 수 있습니다. 응용 프로그램과는 다른 도메인에서 사운드가 제공되는 경우에도 정책 파일을 사용하여 내용 샌드박스에서 사운드를 가져올 수 있습니다.

응용 프로그램은 checkPolicyFile 속성을 사용하여 SoundLoaderContext 객체를 Sound.load() 메서드에 매개 변수로 전달할 수 있습니다. checkPolicyFile 속성을 true 로 설정하면 Flash Player 또는 AIR는 사운드가 로드된 서버에서 정책 파일을 찾습니다. 정책 파일이 존재하고 로드하는 SWF 파일의 도메인에 액세스 권한이 부여되면 SWF 파일은 사운드 파일을 로드하고 Sound 객체의 id3 속성에 액세스한 다음 로드된 사운드에 대한 SoundMixer.computeSpectrum() 메서드를 호출합니다.

소유자 샌드박스는 사운드의 로컬 재생을 제어합니다. 사운드 재생을 시작하는 응용 프로그램 또는 객체가 소유자 샌드박스를 정의합니다.

다음 조건에 맞는 경우 SoundMixer.stopAll() 메서드는 현재 재생 중인 모든 SoundChannel 객체의 사운드를 중지합니다.

  • 동일한 소유자 샌드박스 내의 객체에 의해 시작된 사운드

  • SoundMixer.stopAll() 메서드를 호출하는 응용 프로그램 또는 객체의 도메인에 대한 액세스를 허용하는 정책 파일을 가진 소스에서 제공되는 사운드

하지만 AIR 응용 프로그램에서 응용 프로그램 보안 샌드박스의 내용(AIR 응용 프로그램과 함께 설치된 내용)은 이러한 보안 제한에 의해 제한되지 않습니다.

SoundMixer.stopAll() 메서드가 모든 재생 사운드를 실제로 중지하는지 알아보기 위해 응용 프로그램이 SoundMixer.areSoundsInaccessible() 메서드를 호출할 수 있습니다. 해당 메서드가 true 값을 반환하면 재생 중인 일부 사운드는 현재 소유자 샌드박스의 제어 범위를 벗어나므로 SoundMixer.stopAll() 메서드에 의해 중지되지 않습니다.

또한 SoundMixer.stopAll() 메서드는 외부 파일로부터 로드된 모든 사운드에 대해 재생 헤드가 계속 진행되지 않도록 중지합니다. 하지만 Flash 제작 도구를 사용하여 FLA 파일에 포함된 사운드 및 타임라인 내 프레임에 연결된 사운드는 애니메이션이 새 프레임으로 이동하면 다시 재생되기 시작합니다.