Пакет | flash.media |
Класс | public class SoundLoaderContext |
Наследование | SoundLoaderContext ![]() |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
load()
класса Sound.
При использовании данного класса необходимо продумать модель безопасности проигрывателя Flash Player:
Sound.id3
, и методы SoundMixer.computeSpectrum()
, SoundMixer.bufferTime
и SoundTransform
.Дополнительные сведения о безопасности см. в следующих ресурсах.
Свойство | Определено | ||
---|---|---|---|
bufferTime : Number = 1000
Количество миллисекунд для предварительной загрузки потокового звука в буфер перед началом передачи звука в поток. | SoundLoaderContext | ||
checkPolicyFile : Boolean = false
Указывает, будет ли проигрыватель Flash Player пытаться загрузить файл политики URL-адресов с сервера загружаемого звука перед началом загрузки самого звука. | SoundLoaderContext | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object |
Метод | Определено | ||
---|---|---|---|
Создает новый объект Context для загрузчика звука. | SoundLoaderContext | ||
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object |
bufferTime | свойство |
public var bufferTime:Number = 1000
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Количество миллисекунд для предварительной загрузки потокового звука в буфер перед началом передачи звука в поток.
Обратите внимание, что значение SoundLoaderContext.bufferTime
нельзя переопределить заданием свойства SoundMixer.bufferTime
. Свойство SoundMixer.bufferTime
затрагивает только время буферизации для встроенных потоковых звуков в SWF-файле и не зависит от динамически созданных объектов Sound (то есть, объектов Sound, созданных в ActionScript).
checkPolicyFile | свойство |
public var checkPolicyFile:Boolean = false
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает, будет ли проигрыватель Flash Player пытаться загрузить файл политики URL-адресов с сервера загружаемого звука перед началом загрузки самого звука. Это свойство применяется к звуку, загружаемому не с того домена, в котором находится вызывающий SWF-файл, с помощью метода Sound.load()
.
Этому свойству необходимо задать значение true
, когда звук загружается не с домена вызывающего SWF-файла и для доступа к данным звука из ActionScript требуются полномочия низкого уровня. Например, доступ низкого уровня к данным звука требуется для ссылки на свойство Sound.id3
с целью получения объекта ID3Info или для вызова метода SoundMixer.computeSpectrum()
для получения образцов загруженного звука При попытке доступа к данным звука без установки значения true
для параметра checkPolicyFile
во время загрузки можно получить исключение SecurityError, так как требуемый файл политик не был загружен.
Если вам не требуется доступ низкого уровня к данным загружаемого звука, не устанавливайте для параметра checkPolicyFile
значение true
. Проверка наличия файла междоменной политики потребляет сетевую полосу пропускания и может задержать начало загрузки, поэтому ее следует выполнять только при необходимости.
При вызове метода Sound.load()
со свойством SoundLoaderContext.checkPolicyFile
в значении true
проигрыватель Flash Player должен либо успешно загрузить соответствующий файл политики URL-адресов, либо определить, что его не существует, прежде чем начнется загрузка заданного звука. Flash Player выполняет следующие действия, чтобы проверить существования файла политики:
Security.loadPolicyFile()
./crossdomain.xml
на том же сервере, что и URLRequest.url
). (URL звука задается в свойстве url
объекта URLRequest, переданного методу Sound.load()
или конструктору Sound.)Во всех случаях для работы проигрывателя Flash Player требуется, чтобы на сервере звука существовал соответствующий файл политики, который предоставляет доступ к объекту по адресу URLRequest.url
на основе места размещения файла политики, а также, чтобы он обеспечивал домену вызывающего SWF-файла доступ к звуку посредством одного или нескольких тегов <allow-access-from>
.
Если установить для параметра checkPolicyFile
значение true
, то перед загрузкой звука проигрыватель Flash Player будет ожидать проверки файла политики. Прежде чем выполнять операции низкого уровня с данными звука, такие как вызов Sound.id3
или SoundMixer.computeSpectrum()
, необходимо дождаться отправки событий progress
и complete
объектом Sound.
Если задать для параметра checkPolicyFile
значение true
, но при этом соответствующий файл политики не будет найден, сообщение об ошибке будет отправлено только при попытке выполнить операцию, требующую файл политики, после чего проигрыватель Flash Player выдаст исключение SecurityError
. После получения события complete
можно проверить, найден ли релевантный файл политики, получив значение Sound.id3
в блоке try
и посмотрев, будет ли выдано исключение SecurityError
.
Будьте внимательны при установке параметра checkPolicyFile
, если вы загружаете файл с URL-адреса, в котором используется HTTP-переадресация на стороне сервера. Проигрыватель Flash Player пытается получить файлы политик, соответствующие свойству url
объекта URLRequest, переданного методу Sound.load()
. Если окончательный звуковой файл передается с другого URL-адреса из-за HTTP-переадресации, то изначально загруженные файлы политик могут быть не применимы к конечному URL-адресу объекта, который и следует учитывать при принятии мер безопасности.
В подобном случае можно предпринять следующее. Получив событие progress
или complete
, нужно проанализировать значение свойства Sound.url
, которое содержит конечный URL звука. Затем вызовите метод Security.loadPolicyFile()
в файле политики которого указан URL-адрес, полученный исходя из конечного URL звука. В завершение, запрашивайте значение свойства Sound.id3
до тех пор, пока не перестанет выдаваться исключение.
Дополнительные сведения о файлах политик см. в главе "Система безопасности проигрывателя Flash Player" руководства Программирование на ActionScript 3.0.
См. также
SoundLoaderContext | () | Конструктор |
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает новый объект Context для загрузчика звука.
ПараметрыbufferTime:Number (default = 1000 ) — Число секунд для предварительной загрузки потокового звука в буфер перед началом передачи звука в поток.
| |
checkPolicyFile:Boolean (default = false ) — Указывает, должен проигрыватель Flash Player проверять существование файла политики URL-адресов перед загрузкой объекта(true ) или нет.
|
Первый параметр объекта SoundLoaderContext (context
) используется для увеличения значения буфера по умолчанию с одной до трех секунд. (Значение выражено в миллисекундах.) Если второму параметру объекта SoundLoaderContext задать значение true
, Flash Player будет проверять наличие файла междоменной политики при загрузке объекта. В данном примере используется значение по умолчанию false
, поэтому проверка выполняться не будет. Метод load()
объекта Sound будет использовать контекстные параметры, чтобы перед началом потокового воспроизведения звук загружался в буфер в течение трех секунд. Объект URLRequest
определяет местоположение файла, подкаста от компании Adobe. Если во время загрузки звука возникает ошибка IOErrorEvent.IO_ERROR
, вызывается метод errorHandler()
.
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.events.IOErrorEvent; public class SoundLoaderContextExample extends Sprite { public function SoundLoaderContextExample() { var snd:Sound = new Sound(); var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3"); var context:SoundLoaderContext = new SoundLoaderContext(3000, false); snd.load(req, context); snd.play(); snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); } private function errorHandler(errorEvent:IOErrorEvent):void { trace("The sound could not be loaded: " + errorEvent.text); } } }