Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: AIR 30.0 или более ранней версии, Flash Player 30.0 или более ранней версии, Flash Lite 4
Flex 4.6 или более ранней версии, Flash Pro CS6 или более ранней версии
Скрыть фильтры
flash.media 

SoundLoaderContext  - AS3

Пакетflash.media
Классpublic class SoundLoaderContext
НаследованиеSoundLoaderContext Inheritance Object

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Класс SoundLoaderContext обеспечивает проверку безопасности для файлов, загружающих звук. Объекты SoundLoaderContext передаются в качестве аргументов конструктору и методу load() класса Sound.

При использовании данного класса необходимо учесть следующую модель безопасности:

  • Загрузка и воспроизведение звука запрещены, если вызывающий файл находится в изолированной программной среде сети, а звуковой файл для загрузки сохранен на локальном компьютере.
  • По умолчанию загрузка и воспроизведение звука не разрешены, если вызывающий локальный файл пытается загрузить и воспроизвести удаленный звук. Чтобы разрешить это, пользователь должен предоставить явное разрешение.
  • Запрещены определенные операции со звуком. Данные в загруженном звуке не могут быть получены файлом, находящимся в другом домене, если не используется файл политики URL-адресов. Данное ограничение распространяется на следующие API-интерфейсы для работы со звуком: свойствоSound.id3, и методы SoundMixer.computeSpectrum(), SoundMixer.bufferTime и SoundTransform.

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

Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность.



Общедоступные свойства
 СвойствоОпределено
  bufferTime : Number = 1000
Количество миллисекунд для предварительной загрузки потокового звука в буфер перед началом передачи звука в реальном времени.
SoundLoaderContext
  checkPolicyFile : Boolean = false
Указывает, будет ли приложение пытаться загрузить файл политики URL-адресов с сервера загружаемого звука перед началом загрузки самого звука.
SoundLoaderContext
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
Общедоступные методы
 МетодОпределено
  
SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
Создает новый объект Context для загрузчика звука.
SoundLoaderContext
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве

bufferTime

свойство
public var bufferTime:Number = 1000

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Количество миллисекунд для предварительной загрузки потокового звука в буфер перед началом передачи звука в реальном времени.

Обратите внимание, что значение 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 Lite 4

Указывает, будет ли приложение пытаться загрузить файл политики URL-адресов с сервера загружаемого звука перед началом загрузки самого звука. Это свойство применяется к звуку, загружаемому не с того домена, в котором находится вызывающий файл, с помощью метода Sound.load().

Установите для данного свойства значение true, если вы загружаете звук, размещенный за пределами домена вызывающего файла, а для кода в вызывающем файле требуется доступ на низком уровне к звуковым данным. Например, доступ низкого уровня к данным звука требуется для ссылки на свойство Sound.id3 с целью получения объекта ID3Info или для вызова метода SoundMixer.computeSpectrum() для получения образцов загруженного звука При попытке доступа к данным звука без установки значения true для параметра checkPolicyFile во время загрузки можно получить исключение SecurityError, так как требуемый файл политик не был загружен.

Если вам не требуется доступ низкого уровня к данным загружаемого звука, не устанавливайте для параметра checkPolicyFile значение true. Проверка наличия файла политики снижает пропускную способность сети и может задержать начало загрузки, поэтому ее следует выполнять только при необходимости.

При вызове метода Sound.load() со свойством SoundLoaderContext.checkPolicyFile в значении true проигрыватель Flash Player или AIR должен либо успешно загрузить соответствующий файл политики URL-адресов, либо определить, что его не существует, прежде чем начнется загрузка заданного звука. Flash Player или AIR выполняет следующие действия в указанном порядке, чтобы проверить существование файла политики:

  • Проигрыватель Flash Player или AIR анализирует ранее загруженные файлы политик.
  • Проигрыватель Flash Player или AIR пытается загрузить любые ожидаемые файлы политик, указанные в вызовах метода Security.loadPolicyFile().
  • Проигрыватель Flash Player или AIR пытается загрузить файл политики из местоположения по умолчанию, которое соответствует URL-адресу звука (файл /crossdomain.xml на том же сервере, что и URLRequest.url). (URL-адрес звука задается в свойстве url объекта URLRequest, переданного методу Sound.load() или функции конструктора Sound().)

Во всех случаях проигрыватель Flash Player или AIR требует наличия на сервере звука соответствующего файла политики, который предоставляет доступ к звуковому файлу по адресу URLRequest.url на основе места размещения файла политики, а также, обеспечивает домену вызывающего файла доступ к звуку посредством одного или нескольких тегов <allow-access-from>.

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

Если задать для параметра checkPolicyFile значение true, но при этом соответствующий файл политики не будет найден, сообщение об ошибке будет отправлено только при попытке выполнить операцию, требующую наличия файла политики, после чего проигрыватель Flash Player или AIR выдаст исключение SecurityError. После получения события complete можно проверить, найден ли релевантный файл политики, получив значение Sound.id3 в блоке try и посмотрев, будет ли выдано исключение SecurityError.

Будьте внимательны при установке параметра checkPolicyFile, если вы загружаете файл с URL-адреса, в котором используется HTTP-переадресация на стороне сервера. Проигрыватель Flash Player или AIR пытается получить файлы политик, соответствующие свойству url объекта URLRequest, переданного методу Sound.load(). Если окончательный звуковой файл передается с другого URL-адреса из-за HTTP-переадресации, то изначально загруженные файлы политик могут быть не применимы к конечному URL-адресу объекта, который и следует учитывать при принятии мер безопасности.

В подобном случае можно предпринять следующее. Получив событие progress или complete, нужно проанализировать значение свойства Sound.url, которое содержит конечный URL звука. Затем вызовите метод Security.loadPolicyFile() в файле политики которого указан URL-адрес, полученный исходя из конечного URL звука. В завершение запрашивайте значение свойства Sound.id3 до тех пор, пока не перестанет выдаваться исключение.

Это условие не применимо к содержимому в изолированной программной среде безопасности приложения AIR. Содержимое, находящееся в изолированной программной среде приложения, всегда имеет программный доступ к звуковому содержимому независимо от источника его происхождения.

Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность.

Связанные элементы API

Сведения о конструкторе

SoundLoaderContext

()Конструктор
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Создает новый объект Context для загрузчика звука.

Параметры
bufferTime:Number (default = 1000) — Число секунд для предварительной загрузки потокового звука в буфер перед началом передачи звука в поток.
 
checkPolicyFile:Boolean (default = false) — Указывает, стоит проверять наличие файла политики 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);
        }

    }
}




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.