Получение данных загруженного мультимедийного содержимогоFlash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий Для доступа к загруженным данным используйте методы BitmapData.draw() и SoundMixer.computeSpectrum(). По умолчанию нельзя получать пиксельные данные или аудиоданные из объектов графики или звука, которые визуализируются или воспроизводятся мультимедийным содержимым, загруженным в другую изолированную программную среду. Однако можно использовать следующие методы для предоставления прав доступа к этим данным в пределах изолированной программной среды:
В следующих разделах подробно описывается получение данных растрового изображения, аудио и видео. Получение данных растрового изображенияМетод draw() объекта BitmapData позволяет записать отображаемые в данный момент пикселы любого экранного объекта в объект BitmapData. Это могут быть пикселы объекта MovieClip, Bitmap или любого другого экранного объекта. Чтобы метод мог draw() записать пикселы в объект BitmapData, должны выполняться следующие условия.
Если эти условия не выполняются, выдается исключение SecurityError. При загрузке изображения с помощью метода load() класса Loader можно задать параметр context, представленный объектом LoaderContext. Если задать свойству checkPolicyFile объекта LoaderContext значение true, проигрыватель Flash Player проверяет наличие файла политики URL-адресов на сервере, с которого загружается изображение. Если имеется файл политики, разрешающий домен загружающего SWF-файла, тогда этот файл получает доступ к данным объекта Bitmap; в противном случае — не получает. Также можно определить свойство checkPolicyFile в изображении, загруженном с помощью тега <img> в текстовом поле. Дополнительные сведения см. в разделе «Загрузка SWF-файлов и изображений путем добавления тега <img> в текстовое поле». Получение аудиоданныхНа следующие API-интерфейсы ActionScript 3.0, связанные со звуком, накладываются ограничения в целях безопасности.
С каждым звуком связаны две изолированные программные среды: среда содержимого и среда владельца.
При загрузке звука с помощью метода load() класса Sound можно задать параметр context, представленный объектом SoundLoaderContext. Если задать свойству checkPolicyFile объекта SoundLoaderContext значение true, среда выполнения проверяет наличие файла политики URL-адресов на сервере, с которого загружается звук. Если имеется файл политики, разрешающий домен загружающего кода, тогда этот код получает доступ к свойству id объекта Sound; в противном случае — не получает. Кроме того, можно задать свойство checkPolicyFile, чтобы сделать возможным использование метода SoundMixer.computeSpectrum() для загруженных звуков. С помощью метода SoundMixer.areSoundsInaccessible() можно выяснить, получится остановить все звуки с помощью метода SoundMixer.stopAll() или не получится, так как изолированная программная среда одного или нескольких владельцев звуков является недоступной для вызывающего файла. Вызов метода SoundMixer.stopAll() останавливает те звуки, владельцы которых находятся в одной изолированной программной среде с файлом, вызывающим метод stopAll(). Он также останавливает те звуки, воспроизведение которых было запущено SWF-файлами, вызвавшими метод Security.allowDomain() для предоставления доступа домену SWF-файла, вызывающего stopAll(). Другие звуки не останавливаются, их присутствие можно определить, вызвав метод SoundMixer.areSoundsInaccessible(). Для вызова метода computeSpectrum() требуется, чтобы каждый воспроизводимый звук находился либо в одной изолированной программной среде с объектом, вызывающим метод, либо в исходном домене, который предоставил доступ для домена вызывающего файла. В противном случае выдается исключение SecurityError. Чтобы получить доступ к звукам, загруженным из встроенных объектов в библиотеке SWF-файла, нужно вызвать метод Security.allowDomain() в загруженном SWF-файле. Чтобы получить доступ к данным звуков, загруженных не из SWF-файлов (например, из mp3-файлов или видеофайлов), необходимо поместить файл политики URL-адресов на исходном сервере. Дополнительные сведения см. в разделах «Элементы управления автора (разработчика)» и «Элементы управления веб-сайта (файлы политики)». Чтобы получить доступ к звуковым данным из потоков RTMP, необходимо разрешить доступ на сервере. Используйте свойствоClient.audioSampleAccess серверного языка ActionScript для разрешения доступа к определенным каталогам на сервере Flash Media Server. Дополнительные сведения см. в справочнике по серверному языку ActionScript. Получение видеоданныхС помощью метода BitmapData.draw() можно захватывать пикселные данные текущего кадра видео. Видеосодержимое бывает двух типов:
Чтобы использовать метод BitmapData.draw() для извлечения графики времени выполнения из потоков RTMP, необходимо разрешить доступ на сервере. Используйте свойство Client.videoSampleAccess серверного языка ActionScript для разрешения доступа к определенным каталогам на сервере Flash Media Server. Дополнительные сведения см. в справочнике по серверному языку ActionScript. Когда вызывается метод BitmapData.draw(), для которого в качестве параметра source передано последовательное видео, файл, вызывающий метод BitmapData.draw(), должен находиться в одной изолированной программной среде с FLV-файлом, либо на сервере FLV-файла должен быть файл политики, предоставляющий доступ домену вызывающего SWF-файла. Чтобы запросить загрузку файла политики, нужно задать свойству checkPolicyFile объекта NetStream значение true. |
![]() |
Юридическая информация | Online Privacy Policy