Безопасность при загрузке и воспроизведении звуков

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

Способность приложения получать аудиоданные может быть ограничена в соответствии с моделью безопасности проигрывателя Flash Player или AIR. На каждый звук распространяются ограничения двух разных изолированных программных сред: среды самого содержимого («изолированная программная среда содержимого») и среды приложения или объекта, который загружает и воспроизводит звук («изолированная программная среда владельца»). Если содержимое приложения AIR находится в изолированной программной среде приложения, для него доступны все звуки, включая загруженные из других доменов. Однако к содержимому из других изолированных программных сред применяются те же правила, что и к содержимому в Flash Player. Дополнительные сведения о модели безопасности проигрывателя Flash Player в целом и определения изолированных программных сред см. в разделе Безопасность.

Изолированная программная среда содержимого контролирует возможность извлечения подробных данных звука с помощью свойства id3 или метода SoundMixer.computeSpectrum(). Она не накладывает ограничений на загрузку или воспроизведение звука.

Исходный домен аудиофайла определяет ограничения по безопасности для изолированной программной среды содержимого. Как правило, если аудиофайл размещен в том же домене или папке, что и SWF-файл загружающего приложения или объекта, то приложение или объект будет иметь полный доступ к этому звуку. Если звук размещен в другом домене, то его можно импортировать в изолированную программную среду содержимого с помощью файла политики.

Приложение может передать объект SoundLoaderContext со свойством checkPolicyFile в качестве параметра метода Sound.load(). Если задать свойству checkPolicyFile значение true, проигрыватель Flash Player или AIR будет искать файл политики на сервере, с которого загружается звук. Если файл политики существует и предоставляет доступ домену загружающего SWF-файла, то этот SWF-файл сможет загрузить свойство id3 объекта Sound и вызвать метод SoundMixer.computeSpectrum() для загруженных звуков.

Изолированная программная среда владельца контролирует локальное воспроизведение звуков. Изолированная программная среда владельца определяется в зависимости от приложения или объекта, который запускает воспроизведение звука.

Метод SoundMixer.stopAll() останавливает все звуки во всех объектах SoundChannel, которые воспроизводятся в данный момент, если они соответствуют следующим критериям:

  • воспроизведение звуков было запущено объектами из той же изолированной программной среды владельца;

  • звуки размещены на исходном сервере, на котором есть файл политики, предоставляющий доступ домену приложения или объекта, который вызывает метод SoundMixer.stopAll().

Однако в AIR эти ограничения по безопасности не распространяются на содержимое в изолированной программной среде приложения (содержимое, установленное с приложением AIR).

Чтобы выяснить, сможет ли метод SoundMixer.stopAll() остановить воспроизведение всех звуков, приложение должно вызвать метод SoundMixer.areSoundsInaccessible(). Если этот метод возвращает значение true, некоторые воспроизводимые звуки находятся за пределами текущей изолированной программной среды владельца и не могут быть остановлены методом SoundMixer.stopAll().

Метод SoundMixer.stopAll() также останавливает точку воспроизведения для всех звуков, загруженных из внешних файлов. Однако звуки, встроенные в FLA-файл и прикрепленные к кадрам временной шкалы с помощью инструмента разработки Flash, могут возобновиться, если анимация перейдет к следующему кадру.