Способность приложения получать аудиоданные может быть ограничена в соответствии с моделью безопасности проигрывателя 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, могут возобновиться, если анимация перейдет к следующему кадру.