Пакет | flash.net |
Класс | public class NetStream |
Наследование | NetStream ![]() ![]() |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
NetStream.publish()
или подписаться на опубликованный поток и получать данные с помощью метода NetStream.play()
. Вы можете публиковать или воспроизводить "прямые" (в режиме реального времени) или предварительно записанные данные. Объекты NetStream можно также использовать для отправки сообщений всем подписанным клиентам (см. метод NetStream.send()
).
По сравнению с внедрением видео в документы Flash, воспроизведение внешних видеофайлов имеет ряд преимуществ, таких как повышение производительности и оптимизация управления памятью, а также независимость частоты кадров видео- и Flash-материалов.
Проигрыватель Flash Player версии 9.0.115.0 и более поздних версий поддерживает файлы, извлеченные из стандартного формата контейнера MPEG-4 (включая F4V, MP4, M4A, MOV, MP4V, 3GP и 3G2), если они содержат видео в формате H.264 и/или аудио в формате HEAAC v2. По сравнению со схожим профилем кодирования в Sorenson или On2, формат H.264 обеспечивает более высокое качество видеоизображения при невысоких скоростях потока. HE-AAC v2 является усовершенствованным форматом AAC (стандартный формат аудиофайла, определенный в стандарте видео MPEG-4), в котором с помощью технологий Spectral Band Replication (SBR) и Parametric Stereo (PS) увеличивается качество кодирования на низких скоростях потока. Информация о поддерживаемых кодеках и форматах файлов представлена по адресу http://www.adobe.com/go/hardware_scaling_ru и в документации по серверу Flash Media Server.
Класс NetStream предоставляет целый ряд методов и свойств, которые можно использовать для отслеживания состояния файла в процессе его загрузки или воспроизведения, а также для пользовательского управления процессом воспроизведения (остановка, пауза и т.д.).
Общий процесс обработки для потокового аудио и видео. Следующие действия описывают процесс обработки для публикации аудио и видео в реальном времени.
NetConnection.connect()
подключитесь к экземпляру приложения на сервере.NetStream.attachAudio()
для захвата и отправки аудиоданных через поток, а метод NetStream.attachCamera()
— для захвата и отправки видео.NetStream.publish()
назначьте потоку имя и отправьте данные по потоку на сервер, чтобы остальные пользователи могли их получить. В процессе публикации также можно записывать данные, которые пользователи смогут позже воспроизвести.SWF-файлы, подписывающиеся на поток, будут использовать имя, переданное publish()
, при вызове метода play()
, а в качестве издателя будут вызывать тот же самый метод NetConnection.connect()
. Для потоковой передачи видео им потребуется вызвать метод Video.attachNetStream()
, а для воспроизведения потока — метод NetStream.play()
.
Использование ключевых кадров данных вместе с Flash Media Server. После создания объектов NetConnection и NetStream можно с помощью метода NetStream.send()
добавить метаданные в аудио- или видеосодержимое во время его прямой потоковой передачи на сервер. Метаданными может служить такая информация, как высота и ширина кадра видеосъемки, ее продолжительность, имя создателя и т.п. Чтобы определить метаданные, используйте имя специального обработчика @setDataFrame
в качестве первого аргумента для NetStream.send()
.
Получение данных из потока с Flash Media Server или последовательно загружаемого F4V- или FLV-файла. Flash Media Server и FLV-файлы могут во время потоковой передачи или воспроизведения отправлять объекты событий со сведениями о конкретных точках данных. Обрабатывать данные потока или FLV-файла во время воспроизведения можно двумя способами.
NetStream.client
назначьте объект для вызова определенных функций обработки данных. Объект, назначенный свойству NetStream.client
может вызвать прослушиватель для следующих точек данных: onCuePoint()
, onImageData()
, onMetaData()
, onPlayStatus()
, onTextData()
и onXMPData()
. Затем в этих функциях запишите процедуры для обработки объекта данных, возвращенного потоком или FLV-файлом во время воспроизведения. Дополнительные сведения см. в описании NetStream.client
.
Примечание. Чтобы отправить данные через аудиофайл, например в формате MP3, используйте класс Sound для связи файла с объектом Sound. Затем используйте свойство Sound.id3
для считывания метаданных из звукового файла.
См. также
Свойство | Определено | ||
---|---|---|---|
bufferLength : Number [только для чтения]
Число секунд данных, в настоящий момент находящихся в буфере. | NetStream | ||
bufferTime : Number
Определяет, как долго сообщения должны накапливаться в буфере до начала отображения потока. | NetStream | ||
bytesLoaded : uint [только для чтения]
Число байт данных, загруженных в проигрыватель Flash Player. | NetStream | ||
bytesTotal : uint [только для чтения]
Общий размер файла, загружаемого в проигрыватель Flash Player (в байтах). | NetStream | ||
checkPolicyFile : Boolean
Указывает, будет ли проигрыватель Flash Player пытаться загрузить файл политик URL с сервера загружаемого видеофайла перед началом загрузки самого файла. | NetStream | ||
client : Object
Задает объект, для которого вызываются методы обратного вызова для обработки потоковой передачи или данных FLV-файла. | NetStream | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
currentFPS : Number [только для чтения]
Число кадров, отображаемых за одну секунду. | NetStream | ||
farID : String [только для чтения]
Идентификатор удаленного узла, подключенного к данному экземпляру NetStream. | NetStream | ||
farNonce : String [только для чтения]
Значение, выбираемое преимущественно на другом конце этого потока (уникальное в отношении данного подключения). | NetStream | ||
info : NetStreamInfo [только для чтения]
Возвращает объект NetStreamInfo, свойства которого содержат статистические данные о качестве обслуживания. | NetStream | ||
liveDelay : Number [только для чтения]
Число секунд данных в буфере подписывающего потока в режиме реального времени (небуферизованном). | NetStream | ||
maxPauseBufferTime : Number
Задает время буферизации сообщений во время режима паузы. | NetStream | ||
nearNonce : String [только для чтения]
Значение, выбираемое преимущественно на этом конце потока (уникальное в отношении данного подключения). | NetStream | ||
objectEncoding : uint [только для чтения]
Кодировка объекта (версия AMF) для данного объекта NetStream. | NetStream | ||
peerStreams : Array [только для чтения]
Объект, содержащий все подписывающие экземпляры NetStream, прослушивающие этот публикующий экземпляр NetStream. | NetStream | ||
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object | |
soundTransform : SoundTransform
Управляет звуком в данном объекте NetStream. | NetStream | ||
time : Number [только для чтения]
Положение точки воспроизведения (в секундах). | NetStream |
Метод | Определено | ||
---|---|---|---|
Создает поток, с помощью которого можно воспроизводить видеофайлы через заданный объект NetConnection. | NetStream | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях. | EventDispatcher | |
Задает аудиопоток, отправляемый через объект NetStream из объекта Microphone, переданного в качестве источника. | NetStream | ||
Начинает захват видео с видеокамеры, либо останавливает запись, если параметр theCamera имеет значение null. | NetStream | ||
Останавливает воспроизведение всех данных в потоке, присваивает свойству time значение 0 и делает поток доступным для использования. | NetStream | ||
![]() |
Передает событие в поток событий. | EventDispatcher | |
![]() |
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
Вызывается, когда поток одноранговой публикации совпадает с потоком одноранговой подписки. | NetStream | ||
Приостанавливает воспроизведение видеопотока. | NetStream | ||
Начинает воспроизведение видеофайлов. | NetStream | ||
Начинает воспроизведение мультимедийных файлов с использованием одного из нескольких вариантов. | NetStream | ||
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
Отправляет потоковое аудио, видео и текстовые сообщения от клиента на сервер Flash Media Server, дополнительно записывая поток в ходе передачи. | NetStream | ||
Определяет, воспроизводится ли входящий звук в потоке. | NetStream | ||
Определяет, воспроизводится ли входящее видео в потоке. | NetStream | ||
Указывает частоту кадров для входящего видео. | NetStream | ||
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
Возобновляет воспроизведение приостановленного видеопотока. | NetStream | ||
Осуществляет поиск ключевого кадра (так называемого I-кадра), расположенного ближе всего к указанной точке. | NetStream | ||
Отправляет сообщение по опубликованному потоку всем подписавшимся клиентам. | NetStream | ||
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
Приостанавливает или возобновляет воспроизведение потока. | NetStream | ||
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
Отправляется, когда исключение создается асинхронным образом, то есть в коде, изначально имеющем асинхронную природу. | NetStream | |||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным. | EventDispatcher | ||
Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою сетевой операции. | NetStream | |||
Отправляется, когда объект NetStream сообщает о своем состоянии или о случившейся ошибке. | NetStream | |||
Добавляет прослушиватель, реагирующий на достижение встроенной ключевой точки во время воспроизведения видеофайла. | NetStream | |||
Добавляет прослушиватель событий, реагирующий на получение проигрывателем Flash Player графических данных в виде массива байт, встроенного в воспроизводимый мультимедийный файл. | NetStream | |||
Добавляет прослушиватель, реагирующий на получение проигрывателем Flash Player описательной информации, встроенной в воспроизводимое видео. | NetStream | |||
Добавляет прослушиватель, которые реагирует на завершение воспроизведения потока объектом NetStream. | NetStream | |||
Добавляет прослушиватель событий, реагирующий на получение проигрывателем Flash Player текстовых данных, встроенных в воспроизводимый мультимедийный файл. | NetStream | |||
Устанавливает прослушиватель, реагирующий на получение проигрывателем Flash Player информации о платформе Adobe Extensible Metadata Platform (XMP), встроенной в воспроизводимое видео. | NetStream |
Константа | Определено | ||
---|---|---|---|
CONNECT_TO_FMS : String = "connectToFMS" [статические]
Статический объект, передаваемый в качестве параметра конструктору для экземпляра NetStream. | NetStream | ||
DIRECT_CONNECTIONS : String = "directConnections" [статические]
Создает подключение между одноранговыми издателями | NetStream |
bufferLength | свойство |
bufferLength:Number
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Число секунд данных, в настоящий момент находящихся в буфере. Используя данное свойство вместе со свойством bufferTime
, можно определить, насколько близок момент полного заполнения буфера (это необходимо, например, чтобы оповестить пользователя, ожидающего загрузки данных в буфер).
public function get bufferLength():Number
См. также
bufferTime | свойство |
bufferTime:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, как долго сообщения должны накапливаться в буфере до начала отображения потока. Например, для того чтобы первые 15 секунд потока воспроизводились без прерываний, следует установить для параметра bufferTime
значение 15. Flash начнет воспроизведение потока только после того, как буферизацию пройдут 15 секунд данных.
Значение по умолчанию — 0,1 (одна десятая секунды). Определить количество секунд, которые в данный момент находятся в буфере, можно с помощью свойства bufferLength
.
Примечание. Во избежание искажения при потоковой передаче предварительно записанного (не эфирного) содержимого, не задавайте для NetStream.bufferTime
значение 0. По умолчанию проигрыватель Flash Player использует входящий буфер для предварительно записанного содержимого, который ставит данные в очередь и надлежащим образом их воспроизводит. Для предварительно записанного содержимого используйте параметр по умолчанию или увеличьте время буферизации.
Начиная с версии 9.0.115.0, проигрыватель Flash Player больше не очищает буфер при вызове метода NetStream.pause()
. До версии 9.0.115.0, перед тем как продолжить воспроизведение, проигрыватель Flash Player находился в ожидании заполнения буфера, что часто вызывало задержку.
Для одиночной паузы свойство NetStream.bufferLength
имеет ограничение в 60 секунд или удвоенное значение параметра NetStream.bufferTime
(выбирается большее значение из двух). Например, если параметр bufferTime
равен 20 секундам, то проигрыватель Flash Player заполняет буфер до тех пор, пока NetStream.bufferLength
не примет верхнее значение 20*2 (40) или 60. В данном случае, буферизация проводится до того, как параметр bufferLength
не будет иметь значение 60. Если параметр bufferTime
равен 40 секундам, то проигрыватель Flash Player заполняет буфер до тех пор, пока NetStream.bufferLength
не примет верхнее значение 40*2 (80) или 60. В этом случае буферизация проводится до того, как параметр bufferLength
не будет иметь значение 80.
Свойство bufferLength
также имеет абсолютный предел. Если любой вызов pause()
приводит к тому, что значение параметра bufferLength
увеличивается на 600 секунд или на значение bufferTime
* 2 (выбирается наибольшее из двух), проигрыватель Flash Player очищает буфер и устанавливает для параметра bufferLength
значение, равное 0. Например, если значение параметра bufferTime
равно 120 секундам, проигрыватель Flash Player заполняет буфер до тех пор, пока параметр bufferLength
не примет значение в 600 секунд. Если значение параметра bufferTime
— 360 секунд, то Flash Player заполняет буфер до тех пор, пока bufferLength
не станет равным 720 секундам.
Совет: Метод NetStream.pause()
можно использовать в коде для буферизации данных в тот момент, например, когда зрители смотрят рекламу, и последующего воспроизведения потока в начале основной видеопрограммы.
Дополнительные сведения о новых возможностях механизма паузы см. по адресу http://www.adobe.com/go/learn_fms_smartpause_ru.
Flash Media Server. Поведение буфера зависит от того, в отношении какого потока установлено время буферизации: публикующего или подписывающего. Для публикующего потока параметр bufferTime
указывает, как долго может расширяться исходящий буфер до тех пор, пока проигрыватель Flash не начнет пропускать кадры. При высокоскоростном подключении время буферизации не столь важно — данные будут отправляться настолько же быстро, насколько быстро проигрыватель сможет поместить их в буфер. Однако при медленном подключении может появиться существенная разница между тем, как быстро проигрыватель Flash помещает данные в буфер, и тем, с какой скоростью эти данные он может отправить клиенту.
Для подписывающего потока параметр bufferTime
указывает, как долго может происходить буферизация входящих данных до того, как поток будет отображаться на экране. Например, для того чтобы первые 15 секунд потока воспроизводились без прерываний, следует установить для параметра bufferTime
значение 15. Flash начнет воспроизведение потока только после того, как буферизацию пройдут 15 секунд данных.
Если при воспроизведении записанного потока параметр bufferTime
равен нулю, то проигрыватель Flash устанавливает для него малое значение (приблизительно 10 миллисекунд). Если в дальнейшем воспроизводятся (например, из списка воспроизведения) потоки в реальном времени, данное значение времени буферизации не меняется. Другими словами, параметр bufferTime
остается для потока ненулевым.
public function get bufferTime():Number
public function set bufferTime(value:Number):void
См. также
bytesLoaded | свойство |
bytesLoaded:uint
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Число байт данных, загруженных в проигрыватель Flash Player. Используя данное свойство вместе со свойством bytesTotal
, можно определить, насколько близок момент полного заполнения буфера (это необходимо, например, чтобы оповестить пользователя, ожидающего загрузки данных в буфер).
public function get bytesLoaded():uint
См. также
bytesTotal | свойство |
bytesTotal:uint
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Общий размер файла, загружаемого в проигрыватель Flash Player (в байтах).
public function get bytesTotal():uint
См. также
checkPolicyFile | свойство |
checkPolicyFile:Boolean
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает, будет ли проигрыватель Flash Player пытаться загрузить файл политик URL с сервера загружаемого видеофайла перед началом загрузки самого файла. Данное свойство применяется при использовании объекта NetStream для последовательной загрузки отдельных видефайлов или при загрузке файлов, размещенных за пределами собственного домена вызывающего SWF-файла. Данное свойство игнорируется, если для получения ресурса RTMP используется объект NetStream.
Установите для данного свойства значение true
, если вы загружаете видеофайл, размещенный за пределами домена вызывающего SWF-файла. Для доступа с возможностью обработки этого видеоматериала вам следует использовать метод BitmapData.draw()
. При вызове BitmapData.draw()
без установки значения true
для параметра checkPolicyFile
во время загрузки можно получить исключение SecurityError
, так как требуемый файл политик не был загружен.
Если вам не требуется доступ к загружаемому видео на уровне обработки изображения, не устанавливайте для параметра checkPolicyFile
значение true
. Проверка наличия файла политик снижает пропускную способность сети и может задержать начало загрузки.
Когда вызывается метод NetStream.play()
, в котором параметр checkPolicyFile
имеет значение true
, проигрыватель Flash Player должен успешно загрузить соответствующий файл политик URL или определить, что такой файл не существует, и только потом перейти к загрузке объекта, указанного в вызове NetStream.play()
. Чтобы убедиться в существовании файла политик, проигрыватель Flash Player выполняет следующие действия в указанном ниже порядке:
Security.loadPolicyFile()
.NetStream.play()
(файл /crossdomain.xml
на том же сервере, где и находится данный URL-адрес).Во всех случаях для работы проигрывателя Flash Player требуется, чтобы на сервере видеоданных существовал подходящий файл политики, чтобы он предоставлял доступ к объекту по URL-адресу, переданному методу play()
на основе места размещения файла политики, а также, чтобы он обеспечивал домену вызывающего SWF-файла доступ к видео посредством одного или нескольких тегов <allow-access-from>
.
Если установить для параметра checkPolicyFile
значение true
, то перед тем как загрузить видео, проигрыватель Flash Player будет находиться в ожидании до того, как будет проверен файл политики. Чтобы выполнять какие-либо операции по обработке видеоданных на уровне пикселов (например, вызов BitmapData.draw()
), следует дождаться получения от своего объекта NetStream событий onMetaData
или NetStatus
.
Если вы укажете для параметра checkPolicyFile
значение true
, но при этом соответствующий файл политики не будет найден, сообщение об ошибке не будет получено до тех пор, пока вы не выполните операцию, требующую файл политики, после чего проигрыватель Flash создаст исключение SecurityError
.
Будьте внимательны при установке параметра checkPolicyFile
, если вы загружаете файл с URL-адреса, в котором используется HTTP-переадресация на стороне сервера. Flash Player производит попытку извлечь файлы политики, связанные с первоначальным URL-адресом, который указывается в NetStream.play()
. Если из-за HTTP-переадресации конечный файл поступает с другого URL-адреса, первоначально загруженные файлы политик могут не применяться в отношении конечного URL-адреса файла. С точки зрения безопасности, именно этот URL-адрес представляет большую важность.
Дополнительные сведения о файлах политик см. в главе "Система безопасности проигрывателя Flash Player" руководства Программирование на ActionScript 3.0.
public function get checkPolicyFile():Boolean
public function set checkPolicyFile(value:Boolean):void
См. также
client | свойство |
client:Object
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает объект, для которого вызываются методы обратного вызова для обработки потоковой передачи или данных FLV-файла. Объект по умолчанию: this
(создаваемый объект NetStream). Если в свойстве client
указать другой объект, методы обратного вызова будут вызываться на этом другом объекте. Объект NetStream.client
может вызывать следующие функции и получать связанный объект данных: onCuePoint()
, onImageData()
, onMetaData()
, onPlayStatus()
onTextData()
и onXMPData
.
Чтобы связать свойство client
с обработчиком событий, выполните следующие действия.
client
объекта NetStream:
var customClient:Object = new Object(); my_netstream.client = customClient;
customClient.onImageData = onImageDataHandler;
public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); }
Когда данные передаются через поток или при воспроизведении, объект события данных (в данном случае это объект imageData
) заполняется данными. См. описание onImageData
, содержащее полный пример объекта, назначенного свойству client
.
Чтобы связать свойство client
с подклассом, выполните следующие действия.
class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " framerate=" + info.framerate); }
client
объекта NetStream:
my_netstream.client = new CustomClient();
Когда данные передаются через поток или при воспроизведении, объект события данных (в данном случае это объект info
) заполняется данными. В конце описания класса NetStream приводится пример, демонстрирующий назначение экземпляра подкласса свойству client
.
public function get client():Object
public function set client(value:Object):void
TypeError — В качестве свойства client должен быть указан ненулевой объект.
|
См. также
currentFPS | свойство |
currentFPS:Number
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Число кадров, отображаемых за одну секунду. При экспорте видеофайлов для воспроизведения на нескольких системах можно проверить это значение в процессе тестирования, чтобы определить, какой уровень сжатия необходим при экспортировании файла.
public function get currentFPS():Number
farID | свойство |
farID:String
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Идентификатор удаленного узла, подключенного к данному экземпляру NetStream
. Это свойство определяется только для подключений RTMFP.
flash10 function get farID():String
farNonce | свойство |
farNonce:String
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Значение, выбираемое преимущественно на другом конце этого потока (уникальное в отношении данного подключения). Это значение появляется на другом конце потока в качестве его значения nearNonce
. Это свойство определяется только для подключений RTMFP.
flash10 function get farNonce():String
info | свойство |
info:NetStreamInfo
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Возвращает объект NetStreamInfo, свойства которого содержат статистические данные о качестве обслуживания. Объект представляет собой снимок текущего состояния.
flash10 function get info():NetStreamInfo
См. также
liveDelay | свойство |
liveDelay:Number
[только для чтения] Язык версии : | ActionScript 3.0 |
Версия продукта: | Comm |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Число секунд данных в буфере подписывающего потока в режиме реального времени (небуферизованном). Данное свойство указывает текущую задержку в сетевой передаче данных (время запаздывания).
Данное свойство используется преимущественно для работы с сервером Flash Media Server (более подробную информацию см. в описании класса).
С помощью значения этого свойства можно приблизительно измерить качество передачи потока и сообщить результат пользователю.
public function get liveDelay():Number
maxPauseBufferTime | свойство |
maxPauseBufferTime:Number
[чтение и запись]
Задает время буферизации сообщений во время режима паузы. Его можно использовать для ограничения объема буферизации в режиме паузы путем определения максимально допустимого значения буфера. При достижении предельного значения NetStream.bufferLength
буферизация прекращается. Если это значение не передается, по умолчанию используется значение в 60 секунд или удвоенное значение NetStream.bufferTime
при каждой паузе, как описано выше.
flash10 function get maxPauseBufferTime():Number
flash10 function set maxPauseBufferTime(value:Number):void
nearNonce | свойство |
nearNonce:String
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Значение, выбираемое преимущественно на этом конце потока (уникальное в отношении данного подключения). Это значение появляется на другом конце потока в качестве его значения farNonce
. Это свойство определяется только для подключений RTMFP.
flash10 function get nearNonce():String
objectEncoding | свойство |
objectEncoding:uint
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Кодировка объекта (версия AMF) для данного объекта NetStream. Объект NetStream наследует значение objectEncoding
от соответствующего объекта NetConnection. Необходимо хорошо понимать назначение этого свойства, если вашему SWF-файлу версии ActionScript 3.0 требуется обмен данными с серверами, программное обеспечение которых было выпущено до выхода Flash Player версии 9. Подробные сведения см. в описании свойства objectEncoding
для класса NetConnection.
Значение этого свойства зависит от того, каким является данный поток — локальным или удаленным. Локальные потоки, в которых значение null
было передано методу NetConnection.connect()
, возвращают значение NetConnection.defaultObjectEncoding
. Удаленные потоки возвращают кодировку объекта для подключения к серверу.
При вашей попытке прочитать это свойство при отсутствии подключения или при попытке его изменить проигрыватель Flash Player создаст исключение.
public function get objectEncoding():uint
См. также
peerStreams | свойство |
peerStreams:Array
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Объект, содержащий все подписывающие экземпляры NetStream, прослушивающие этот публикующий экземпляр NetStream.
flash10 function get peerStreams():Array
soundTransform | свойство |
soundTransform:SoundTransform
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Управляет звуком в данном объекте NetStream. Дополнительную информацию см. в описании класса SoundTransform.
public function get soundTransform():SoundTransform
public function set soundTransform(value:SoundTransform):void
См. также
time | свойство |
time:Number
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Положение точки воспроизведения (в секундах).
Flash Media Server Для подписывающего потока — число секунд воспроизведения потока. Для публикующего потока — продолжительность публикации потока (в секундах). Это число используется с точностью до тысячных долей. Умножьте его на 1000, чтобы получить число миллисекунд воспроизведения потока.
Если для подписывающего потока сервер прекращает отправку данных, но при этом сам поток остается открытым, то значение параметра time
перестает увеличиваться. Когда сервер начинает снова отправлять данные, значение продолжает расти с того момента, как было остановлено, плюс добавляется время, в течение которого данные не отправлялись.
Значение time
продолжает расти, когда поток переключается с одного элемента списка воспроизведения на другой. Данное свойство получает значение 0, когда NetStream.play()
вызывается с параметром reset
, значение которого равно 1
или true
, а также при вызове метода NetStream.close()
.
public function get time():Number
См. также
NetStream | () | Конструктор |
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает поток, с помощью которого можно воспроизводить видеофайлы через заданный объект NetConnection.
Информация о поддерживаемых кодеках и форматах файлов представлена по адресу http://www.adobe.com/go/hardware_scaling_ru и в документации по серверу Flash Media Server.
Параметрыconnection:NetConnection — Объект NetConnection
| |
peerID:String (default = "connectToFMS ") — Этот параметр является необязательным. Задайте значение NetStream.CONNECT_TO_FMS для подключения к FMS. Чтобы провести публикацию непосредственно для одноранговых пользователей, укажите NetStream.DIRECT_CONNECTIONS . Чтобы начать воспроизведение непосредственно с определенного однорангового узла, укажите идентификационные данные этого узла (см. описание NetConnection.nearID и NetConnection.farID ). Свойство NetConnection.protocol должно иметь значение "rtmfp" , если в качестве значения параметра peerID указан одноранговый узел. Параметр peerID игнорируется при подключении по любому протоколу, кроме RTMFP. ActionScript использует значение по умолчанию "connectToFMS" для параметра peerID , чтобы программными средствами перехватывать значение 0, передаваемое в качестве параметра метода NetStream().
Однако вследствие того, что параметр new NetStream(nc:NetConnection); |
ArgumentError — Экземпляр NetConnection не подключен.
|
См. также
videoURL
:
var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.play(videoURL); var my_video:Video = new Video(); my_video.attachNetStream(my_ns); addChild(my_video);
videoURL
) на удаленном экземпляре Flash Media Server, заданном в команде connect()
:
var my_nc:NetConnection = new NetConnection(); my_nc.connect("rtmfp://www.yourfmsserver.com/someappname"); var my_ns:NetStream = new NetStream(my_nc, NetStream.CONNECT_TO_FMS); my_ns.play(videoURL); var my_video:Video = new Video(); my_video.attachNetStream(my_ns); addChild(my_video);
attachAudio | () | метод |
public function attachAudio(microphone:Microphone):void
Язык версии : | ActionScript 3.0 |
Версия продукта: | Comm |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает аудиопоток, отправляемый через объект NetStream из объекта Microphone, переданного в качестве источника. Данный метод доступен только издателю указанного потока.
Метод attachAudio
используется при работе с сервером Flash Media Server. Данный метод часто вызывается пользователем, отправляющим аудио в реальном времени (или видео в реальном времени вместе с аудиоданными) с клиентского компьютера на сервер.
Данный метод можно вызвать до или после того, как будет вызван метод publish()
и фактически начата передача. Для прослушивания аудио подписчики должны вызвать метод NetStream.play()
. Звуковыми свойствами данного аудиопотока можно управлять с помощью свойства soundTransform
указанного объекта Microphone.
Параметры
microphone:Microphone — Источник передаваемого аудиопотока.
|
См. также
attachCamera | () | метод |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Начинает захват видео с видеокамеры, либо останавливает запись, если параметр theCamera
имеет значение null
. Данный метод доступен только издателю указанного потока.
Данный метод используется при работе с сервером Flash Media Server (более подробную информацию см. в описании класса).
Чтобы начать передачу, следует после прикрепления видеоисточника вызвать метод NetStream.publish()
. Чтобы отобразить видео в рабочей области, подписчики, которым необходимо отобразить видеоданные, должны вызвать методы NetStream.play()
и Video.attachCamera()
.
С помощью snapshotMilliseconds
можно отправить отдельный снимок (необходимое значение — 0) или серию снимков (для создания эффектов замедленной киносъемки). Для этого нужно указать положительное число, которое добавляет в видеоданные концевой кадр на указанное число миллисекунд. Концевой кадр увеличивает время отображения видеосообщения. С помощью повторных вызовов метода attachCamera()
с положительным значением для параметра snapshotMilliseconds
последовательность сменяющих друг друга снимков и концевых кадров создает эффект замедленной киносъемки. Например, вы можете снимать по одному кадру в день и вставлять такой кадр в видеофайл. Когда подписчик воспроизводит файл, каждый кадр отображается на экране заданное количество миллисекунд, а затем сменяется на следующий кадр.
Функция параметра snapshotMilliseconds
отличается от функции параметра fps
, который можно установить для метода Camera.setMode()
. Определение параметра snapshotMilliseconds
позволяет установить промежуток времени между записываемыми кадрами. Контроль за тем, сколько времени проходит между записью и воспроизведением, осуществляется путем определения параметра fps
с помощью Camera.setMode()
.
Например, предположим, что вам необходимо сделать 100 снимков с периодичностью в 5 минут. Это можно выполнить двумя различными способами:
NetStream.attachCamera(myCamera, 500)
. На эту запись потребуется 500 минут, но полученный файл будет воспроизводиться в течение 50 секунд (100 кадров с промежутком в 500 миллисекунд).Camera.setMode()
, установив для параметра fps
значение 1/300 (1 раз в 300 секунд или 1 раз каждые 5 минут), а затем запустить команду NetStream.attachCamera(source)
, позволяя камере непрерывно захватывать данные в течение 500 минут. Полученный файл будет воспроизводиться 500 минут (тот же отрезок времени, который потребовался для записи данных): каждый кадр будет отображаться на экране в течение 5 минут.В обоих случаях захватываются одни и те же 500 кадров, и оба подхода имеют функциональное применение. Выбор нужного подхода в основном зависит от требований к воспроизведению снятого материала. Например, во втором случае аудио может записываться на протяжении всего времени. Вдобавок, оба файла будут приблизительно одного размера.
Параметры
theCamera:Camera — Источник передачи видео. Допустимые значения: объект Camera (запускающий захват видео) и null . При установке значения null проигрыватель Flash Player прекращает захват видео, при этом любые дополнительные параметры, которые вы отправляете, игнорируются.
| |
snapshotMilliseconds:int (default = -1 ) — Указывает, что собой представляет видеопоток: непрерывный поток, отдельный кадр или серия отдельных кадров, используемая для создания замедленной киносъемки.
|
close | () | метод |
public function close():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Останавливает воспроизведение всех данных в потоке, присваивает свойству time
значение 0 и делает поток доступным для использования. Данный метод также удаляет локальную копию видеофайла, загруженную по протоколу HTTP. Несмотря на то, что проигрыватель Flash Player удаляет локальную копию созданного им файла, она может сохраняться в кэш-каталоге обозревателя. Чтобы полностью предотвратить кэширование или локальное хранение видеофайла, используйте Flash Media Server.
При использовании Flash Media Server данный метод вызывается незаметно при вызове NetStream.play()
из публикующего потока или при вызове NetStream.publish()
из подписывающего потока. Обратите внимание:
close()
, поток прекращает публикацию, после чего издатель может использовать этот поток по другому назначению. Подписчики больше не получают данные, публикуемые в потоке, так как публикация потока была остановлена.
close(
, то поток прекращает воспроизведение для подписчика, после чего подписчик может использовать данный поток для других целей. Это не касается остальных подписчиков.
flash.net.NetStream.play(false)
можно остановить воспроизведение подписывающего потока без закрытия самого потока или изменения его типа.
См. также
onPeerConnect | () | метод |
flash10 function onPeerConnect(subscriber:NetStream):Boolean
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Вызывается, когда поток одноранговой публикации совпадает с потоком одноранговой подписки. Перед тем как подписчик будет подключен к издателю, вызовите этот метод, чтобы обеспечить четкое управление доступом к коду ActionScript для одноранговой публикации. Следующий код демонстрирует создание функции обратного вызова для этого метода
var c:Object = new Object; c.onPeerConnect = function(subscriber:NetStream):Boolean { if (accept) return true; else return false; }; m_netStream.client = c;
Если одноранговый издатель не реализует этот метод, всем одноранговым узлам разрешается воспроизводить любое опубликованное содержимое.
Параметры
subscriber:NetStream |
Boolean |
pause | () | метод |
public function pause():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Приостанавливает воспроизведение видеопотока. Вызов данного метода ни к чему не приводит, если видеопоток уже был приостановлен. Чтобы продолжить воспроизведение видео после временной остановки, вызовите resume()
. Переключение между паузой и воспроизведением (сначала пауза, затем возобновление воспроизведения) выполняется с помощью togglePause()
.
Начиная с версии 9.0.115.0, проигрыватель Flash Player больше не очищает буфер при вызове метода NetStream.pause()
. До версии 9.0.115.0, перед тем как продолжить воспроизведение, проигрыватель Flash Player находился в ожидании заполнения буфера, что часто вызывало задержку.
Для одиночной паузы свойство NetStream.bufferLength
имеет ограничение в 60 секунд или удвоенное значение параметра NetStream.bufferTime
(выбирается большее значение из двух). Например, если параметр bufferTime
равен 20 секундам, то проигрыватель Flash Player заполняет буфер до тех пор, пока NetStream.bufferLength
не примет верхнее значение 20*2 (40) или 60. В данном случае, буферизация проводится до того, как параметр bufferLength
не будет иметь значение 60. Если параметр bufferTime
равен 40 секундам, то проигрыватель Flash Player заполняет буфер до тех пор, пока NetStream.bufferLength
не примет верхнее значение 40*2 (80) или 60. В этом случае буферизация проводится до того, как параметр bufferLength
не будет иметь значение 80.
Свойство bufferLength
также имеет абсолютный предел. Если любой вызов pause()
приводит к тому, что значение параметра bufferLength
увеличивается на 600 секунд или на значение bufferTime
* 2 (выбирается наибольшее из двух), проигрыватель Flash Player очищает буфер и устанавливает для параметра bufferLength
значение, равное 0. Например, если значение параметра bufferTime
равно 120 секундам, проигрыватель Flash Player заполняет буфер до тех пор, пока параметр bufferLength
не примет значение в 600 секунд. Если значение параметра bufferTime
— 360 секунд, то Flash Player заполняет буфер до тех пор, пока bufferLength
не станет равным 720 секундам.
Совет: Метод NetStream.pause()
можно использовать в коде для буферизации данных в тот момент, например, когда зрители смотрят рекламу, и последующего воспроизведения потока в начале основной видеопрограммы.
См. также
play | () | метод |
public function play(... arguments):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Начинает воспроизведение видеофайлов.
Информация о поддерживаемых кодеках и форматах файлов представлена по адресу http://www.adobe.com/go/hardware_scaling_ru и в документации по серверу Flash Media Server.
Для просмотра видеоданных необходимо создать объект Video и вызвать метод Video.attachNetStream()
. При этом будет автоматически воспроизводиться аудио, передаваемое в потоке с видеосигналом, или файл, содержащий только аудиоданные. Для потоковой передачи аудио с микрофона используйте метод NetStream.attachAudio()
и управляйте некоторыми аспектами звука через объект Microphone.
Чтобы контролировать аудио, связанное с видеофайлом, можно использовать метод DisplayObjectContainer.addChild()
, позволяющий направить аудиоданные на объект в списке отображения. Позднее можно создать объект Sound, чтобы управлять определенными характеристиками этих аудиоданных. Дополнительную информацию см. в описании метода DisplayObjectContainer.addChild()
.
Если не удается найти видеофайл, отправляется событие netStatus
. Для остановки воспроизводимого в данный момент потока используйте метод close()
.
При использовании данного метода без Flash Media Server необходимо продумать модель безопасности проигрывателя Flash Player. SWF-файл в локальной доверенной изолированной среде или среде, локальной для сети, может загружать и воспроизводить видеофайл из удаленной изолированной программной среды, но при этом он не имеет доступа к данным этого удаленного файла без четкого разрешения в форме файла политик для URL. Вдобавок, чтобы SWF-файл не использовал этот метод, настройте параметр allowNetworking
тегов object
и embed
HTML-страницы с SWF-содержимым.
Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе "Ограничение сетевых API-интерфейсов" в главе "Безопасность" книги Программирование на ActionScript 3.0.
Дополнительные сведения о безопасности см. в следующих ресурсах.
Netstream.checkPolicyFile
.Параметры
... arguments — Местоположение видеофайла для воспроизведения в виде строки, свойства URLRequest.url или ссылающейся на них переменной. Вы можете воспроизводить локальные видеофайлы, хранящиеся в том же каталоге, где и SWF-файл, или в подкаталоге. Тем не менее, переход на каталоги верхнего уровня вам запрещен.
Flash Media Server Чтобы воспроизвести видеофайлы на сервере Flash Media Server, укажите имя потока без разрешения файла (например,
При работе с Flash Media Server метод
|
SecurityError — Локальные ненадежные SWF-файлы изолированы от Интернета. Данное ограничение можно обойти, если переклассифицировать этот SWF-файл как "local-with-networking" или доверенный.
| |
ArgumentError — Необходимо указать не менее одного параметра.
| |
Error — Недопустимый NetStream Object. Это может быть вызвано сбоем NetConnection.
|
См. также
ns.play("record1", 0, 100, true);
ns.play("stephen");
play2 | () | метод |
flash10 function play2(param:NetStreamPlayOptions):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Начинает воспроизведение мультимедийных файлов с использованием одного из нескольких вариантов.
Этот метод представляет собой расширенную версию NetStream.play()
. Как и play()
, метод play2()
начинает воспроизведение мультимедийного файла или отправляет мультимедийные файлы в очередь для создания списка воспроизведения. При использовании с Flash Media Server он может также запрашивать у сервера переключение на другой мультимедийный файл. Переход происходит незаметно для клиентского приложения.
Используйте метод play2()
для переключения на потоки с одинаковым содержимым, закодированным с разной скоростью потока или для замены потоков в списке воспроизведения. Этот метод позволяет приложению адаптироваться к меняющимся сетевым условиям или к клиентам с разными возможностями. Дополнительные сведения о доступных вариантах перехода см. в разделах NetStreamPlayOptions
и NetStreamPlayTransitions
.
Параметры
param:NetStreamPlayOptions |
См. также
publish | () | метод |
public function publish(name:String = null, type:String = null):void
Язык версии : | ActionScript 3.0 |
Версия продукта: | Comm |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляет потоковое аудио, видео и текстовые сообщения от клиента на сервер Flash Media Server, дополнительно записывая поток в ходе передачи. Данный метод доступен только издателю указанного потока.
Не используйте этот метод, чтобы разрешить клиенту воспроизвести поток, который был предварительно опубликован и записан. Вместо этого создайте для данного клиента экземпляр NetStream и вызовите метод play()
:
var subscribeNS:NetStream = new NetStream(myNetConnection); subscribeNS.play("streamToPlay");
При записи потока с помощью Flash Media Server сервер создает файл и сохраняет его в подкаталоге, который размещен в каталоге приложения на сервере. Каждый поток сохраняется в каталоге, имя которого совпадает с именем экземпляра приложения, переданным методу NetConnection.connect()
. Сервер создает эти каталоги автоматически, пользователю не требуется создавать каталог для каждого экземпляра приложения. Например, в следующем коде показано, как подключиться к определенному экземпляру приложения, хранящегося в каталоге lectureSeries внутри каталога вашего приложения. Файл lecture.flv размещен в подкаталоге /yourAppsFolder/lectureSeries/streams/Monday:
var myNC:NetConnection = new NetConnection(); myNC.connect("rtmp://server.domain.com/lectureSeries/Monday"); var myNS:NetStream = new NetStream(myNC); myNS.publish("lecture", "record");
В следующем примере показано, как подключиться к другому экземпляру того же приложения, при этом запустив идентичную команду публикации. Файл lecture.flv размещен в подкаталоге /yourAppsFolder/lectureSeries/streams/Tuesday:
var myNC:NetConnection = new NetConnection(); myNC.connect("rtmp://server.domain.com/lectureSeries/Tuesday"); var myNS:NetStream = new NetStream(my_nc); myNS.publish("lecture", "record");
Если вы не укажете значение для имени экземпляра, совпадающее со значением, переданным свойству name
, сохраняется в подкаталоге /yourAppsFolder/appName/streams/_definst_
. Более подробные сведения об использовании имен экземпляров см. в описании метода NetConnection.connect()
. Информацию о воспроизведении видеофайлов см. в описании метода NetStream.play()
.
Когда клиент приложения Flash Media Server вызывает метод publish()
, приложение получает событие onPublish
. Приложение должно обрабатывать событие в сценарии на стороне сервера. Когда клиент прекращает публикацию, приложение получает событие onUnpublish
. Дополнительную информацию см. в Справочник по языку Flash Media Server Server-Side ActionScript.
Данный метод может отправить событие netStatus
с несколькими различными информационными объектами. Например, если кто-либо уже ведет публикацию на потоке с указанным именем, событие netStatus
отправляется со свойством кода NetStream.Publish.BadName
. Дополнительную информацию см. в описании события netStatus
.
Параметры
name:String (default = null ) — Строка, идентифицирующая поток. Клиенты, подписывающиеся на данный поток, должны передать это же имя при вызове метода NetStream.play() . Не требуется добавлять расширение файла в имя потока. Не ставьте после имени потока символ "/". Например, не используйте в качестве имени потока bolero/ .
| |
type:String (default = null ) — Строка, указывающая способ публикации потока. Допустимые значения: record , append и live . Значение по умолчанию: live .
|
См. также
receiveAudio | () | метод |
public function receiveAudio(flag:Boolean):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, воспроизводится ли входящий звук в потоке. Данный метод доступен не издателю потока, а только клиентам, подписанным на указанный поток.
Данный метод используется преимущественно для работы с сервером Flash Media Server (более подробную информацию см. в описании класса).
Данный метод можно вызвать до или после того, как будет вызван метод NetStream.play()
и фактически начат прием потока. Например, эти методы можно присвоить той кнопке, которую пользователь нажимает, чтобы включить или выключить звук на входящем аудиопотоке.
Если указанный поток содержит только аудиоданные, то передача значения false
данному методу останавливает приращение NetStream.time
.
Параметры
flag:Boolean — Указывает, воспроизводится (true ) или не воспроизводится (false ) входящее аудио в потоке. Значение по умолчанию — true .
|
receiveVideo | () | метод |
public function receiveVideo(flag:Boolean):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, воспроизводится ли входящее видео в потоке. Данный метод доступен не издателю потока, а только клиентам, подписанным на указанный поток.
Данный метод используется преимущественно для работы с сервером Flash Media Server (более подробную информацию см. в описании класса).
Данный метод можно вызвать до или после того, как будет вызван метод NetStream.play()
и фактически начат прием потока. Например, эти методы можно присвоить той кнопке, которую пользователь нажимает, чтобы отобразить или скрыть входящий видеопоток.
Если указанный поток содержит только видеоданные, то передача значения false
данному методу останавливает приращение NetStream.time
.
Параметры
flag:Boolean — Указывает, воспроизводится (true ) или не воспроизводится (false ) входящее видео в этом потоке. Значение по умолчанию — true .
|
receiveVideoFPS | () | метод |
public function receiveVideoFPS(FPS:Number):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает частоту кадров для входящего видео. Данный метод доступен не издателю потока, а только клиентам, подписанным на указанный поток.
Данный метод используется преимущественно для работы с сервером Flash Media Server (более подробную информацию см. в описании класса).
Данный метод можно вызвать до или после того, как будет вызван метод NetStream.play()
и фактически начат прием потока. Например, можно присоединить эти методы к текстовому полю, где пользователь может задать частоту кадров входящего видео.
Чтобы остановить получение видеоданных, передайте для параметра FPS значение 0. Чтобы определить текущую частоту кадров, используйте NetStream.currentFPS
.
Если в целях уменьшения частоты видеокадров передать определенное значение параметру FPS
, проигрыватель Flash Media Server предпримет попытку снизить частоту кадров, при этом сохраняя целостность видеоизображения. Через каждые два ключевых кадра сервер посылает минимальное количество кадров, необходимое для обеспечения заданной частоты кадров. Тем не менее, следует помнить, что промежуточные кадры должны отправляться рядом с ключевыми. В противном случае, видеоизображение будет испорченным. Таким образом, необходимое число кадров отправляется немедленно в сопровождении ключевого кадра. Так как кадры распределены неравномерно, движение выглядит смягченным в тех сегментах, прерываемых остановками.
Параметры
FPS:Number — Указывает частоту кадров (в секунду), с которой будет воспроизводиться входящее видео.
|
resume | () | метод |
public function resume():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возобновляет воспроизведение приостановленного видеопотока. Если видео уже воспроизводится, вызов данного метода ни к чему не приведет.
См. также
seek | () | метод |
public function seek(offset:Number):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Осуществляет поиск ключевого кадра (так называемого I-кадра), расположенного ближе всего к указанной точке. Ключевой кадр размещается в точке смещения, измеряемой в секундах от начала потока.
Видеопотоки обычно кодируются с двумя типами кадров: ключевые кадры (или I-кадры) и P-кадры. Ключевой кадр содержит все изображение, в то время как P-кадр является промежуточным кадром, предоставляющим дополнительную видеоинформацию между ключевыми кадрами. Как правило, в видеопотоке ключевой кадр ставится через каждые 10-50 кадров.
На сервере Flash Media Server поведение seek()
контролируется с помощью значения элемента EnhancedSeek
в файле конфигурации Application.xml
.
Если параметр EnhancedSeek
имеет значение false
, сервер использует обычный режим поиска. В обычном режиме поиска сервер начинает потоковое воспроизведение с ближайшего ключевого кадра. Например, если в видео ключевые кадры размещены на 0 секунд и 10 секундах, то в результате поиска на 4 секунды воспроизведение начнется с 4 секунды с использованием ключевого кадра, установленного на 0 секунде. Видеокартинка не меняется до тех пор, пока на 10 секундах не будет достигнут следующий ключевой кадр. Для того чтобы оптимизировать операцию поиска, необходимо сократить интервал между ключевыми кадрами. В нормальном режиме поиска нельзя запустить видео в точке между ключевыми кадрами.
Если параметр EnhancedSeek
имеет значение true
(значение по умолчанию), то сервер генерирует новый ключевой кадр в точке смещения offset
на основе предыдущего ключевого кадра и любых промежуточных P-кадров. Тем не менее, это создает большую нагрузку на вычислительные ресурсы сервера, что может привести к искажению сгенерированного ключевого кадра. Если в качестве видеокодека применяется On2, то клиенту отправляются ключевой кадр перед точкой поиска и любые P-кадры между ключевым кадром и точкой поиска.
Параметры
offset:Number — Приблизительное время (в секундах), к которому надо перейти в видеофайле. Если при работе с Flash Media Server параметр <EnhancedSeek> имеет значение true в файле конфигурации Application.xml (значение по умолчанию), сервер генерирует ключевой кадр со смещением offset .
|
См. также
send | () | метод |
public function send(handlerName:String, ... arguments):void
Язык версии : | ActionScript 3.0 |
Версия продукта: | Comm |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляет сообщение по опубликованному потоку всем подписавшимся клиентам. Этот метод доступен только издателю указанного потока и предназначен для работы с сервером Flash Media Server. Чтобы обработать данное сообщение и отреагировать на него, создайте обработчик на объекте NetStream
, например ns.HandlerName
.
Проигрыватель Flash Player не проводит сериализацию методов или их данных, переменных для прототипов объектов или несчетных переменных. Для отображаемых объектов проигрыватель Flash Player сериализует не данные, а только сам путь.
Чтобы добавить ключевые кадры данных в прямой поток, отправляемый на сервер Flash Media Server, можно вызвать метод send()
. Ключевой кадр данных — это сообщение, добавляемое сервером публикаций в прямой поток. Ключевые кадры данных обычно используются для добавления метаданных в прямой поток до того, как будет происходить захват данных (для этого потока) с камеры и микрофона. Издатель может добавлять ключевой кадр данных в любой момент в процессе публикации прямого потока. Ключевой кадр данных хранится в памяти сервера, пока издатель подключен к данному серверу.
Клиенты, подписанные на прямой поток до добавления ключевого кадра данных, получают этот кадр в момент его добавления в поток. Клиенты, подписывающиеся на прямой поток после добавления ключевого кадра данных, получают этот кадр в момент подписки.
Чтобы добавить ключевой кадр метаданных в прямой поток, отправляемый на сервер Flash Media Server, используйте @setDataFrame
в качестве имени обработчика, а затем добавьте два дополнительных аргумента, например:
var ns:NetStream = new NetStream(nc); ns.send("@setDataFrame", "onMetaData", metaData);
Аргумент @setDataFrame
ссылается на специальный обработчик, встроенный в сервер Flash Media Server. Аргумент onMetaData
— это имя функции обратного вызова в клиентском приложении, которая прослушивает событие onMetaData
и извлекает метаданные. Третий элемент, metaData
, представляет собой экземпляр Object
или Array
со свойствами, определяющими значения метаданных. Издатели должны устанавливать имена свойств, понятные для подписчиков. Список предлагаемых имен свойств представлен в документации по серверу Flash Media Server.
Чтобы удалить ключевой кадр метаданных, который был предварительно определен в потоке, используйте @clearDataFrame
:
ns.send("@clearDataFrame", "onMetaData");
Параметры
handlerName:String — Отправляемое сообщение, а также имя обработчика ActionScript, который должен получить это сообщение. Имя обработчика должно быть исключительно одноуровневым (то есть, форма "родитель/дочерний объект" не используется) и связанным с объектом потока. Не используйте в качестве имени обработчика зарезервированный термин. Например, использование "close " в качестве имени обработчика приведет к сбою метода. При работе с Flash Media Server используйте @setDataFrame , чтобы добавить ключевой кадр метаданных в прямой поток, а @clearDataFrame — чтобы удалить ключевой кадр.
| |
... arguments — Необязательные (дополнительные) аргументы любого типа. Они сериализуются и отправляются посредством подключения, при этом принимающий обработчик получает их в том же самом порядке. Если параметр представляет собой объект круглой формы (например, связанный в круглую форму список), сериализатор обрабатывает ссылки надлежащим образом. Если при работе с Flash Media Server в качестве первого аргумента используется @setDataFrame , то как второй аргумент следует использовать onMetaData . В качестве третьего аргумента передайте экземпляр Object или Array , в котором свойствами выступают метаданные. Список предлагаемых имен свойств представлен в документации по серверу Flash Media Server. Если в качестве первого аргумента указан @clearDataFrame , в качестве второго аргумента используйте onMetaData , а третий аргумент не применяйте вообще.
|
См. также
NetStream
. Один используется для публикации потока в реальном времени на сервере, в то время как второй объект осуществляет подписку на данный поток.
package { import flash.display.Sprite; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.media.Video; import flash.utils.setTimeout; public class TestExample extends Sprite { var nc:NetConnection = new NetConnection(); var ns1:NetStream; var ns2:NetStream; var vid:Video = new Video(300,300); var obj:Object = new Object(); public function TestExample() { nc.objectEncoding = 0; nc.addEventListener("netStatus", onNCStatus); nc.connect("rtmp://localhost/FlashVideoApp"); addChild(vid); } function onNCStatus(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": trace("You've connected successfully"); ns1 = new NetStream(nc); ns2 = new NetStream(nc); ns1.client = new CustomClient(); ns1.publish("dummy", "live"); ns2.play("dummy"); ns2.client = new CustomClient(); vid.attachNetStream(ns2); setTimeout(sendHello, 3000); break; case "NetStream.Publish.BadName": trace("Please check the name of the publishing stream" ); break; } } function sendHello():void { ns1.send("myFunction", "hello"); } } } class CustomClient { public function myFunction(event:String):void { trace(event); } }
private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetStream.Publish.Start": var metaData:Object = new Object(); metaData.title = "myStream"; metaData.width = 400; metaData.height = 200; ns.send("@setDataFrame", "onMetaData", metaData); ns.attachCamera( Camera.getCamera() ); ns.attachAudio( Microphone.getMicrophone() ); } }
onMetaData
. Обработчик событий onMetaData
не регистрируется с методом addEventListener()
. Он представляет собой функцию обратного вызова с именем onMetaData
, например:
public function onMetaData(info:Object):void { trace("width: " + info.width); trace("height: " + info.height); }
// Create a NetStream for playing var my_ns:NetStream = new NetStream(my_nc); my_video.attachNetStream(my_ns); // Play the stream record1 my_ns.play("record1", 0, -1, true); // Switch to the stream live1 and play for 5 seconds. // Since reset is false, live1 will start to play after record1 is done. my_ns.play("live1", -1 , 5, false);
//To play at normal speed var my_ns:NetStream = new NetStream(my_nc); my_ns.play("log", 0, -1); //To get the data messages all at once my_ns.play("log", 0, -1, 3);
togglePause | () | метод |
public function togglePause():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Приостанавливает или возобновляет воспроизведение потока. При первом вызове данный метод временно останавливает воспроизведение, при последующем вызове он продолжает воспроизведение. Применение этого метода позволяет пользователям временно останавливать или продолжать воспроизведение путем нажатия одной кнопки.
См. также
asyncError | Событие |
flash.events.AsyncErrorEvent
flash.events.AsyncErrorEvent.ASYNC_ERROR
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда исключение создается асинхронным образом, то есть в коде, изначально имеющем асинхронную природу. Данное событие отправляется, если сервер вызывает метод на клиенте, который не был определен.
КонстантаAsyncErrorEvent.ASYNC_ERROR
определяет значение свойства type
объекта события asyncError
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект, испытывающий сбой сетевой операции. |
error | Ошибка, запускаемая событием. |
См. также
ioError | Событие |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою сетевой операции.
Задает значение свойстваtype
для объекта события ioError
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Сетевой объект, с которым произошла ошибка ввода/вывода. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
netStatus | Событие |
flash.events.NetStatusEvent
flash.events.NetStatusEvent.NET_STATUS
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда объект NetStream сообщает о своем состоянии или о случившейся ошибке. Событие netStatus
содержит свойство info
, представляющее собой информационный объект, который содержит определенные сведения о событии (например, количество успешных и неудачных попыток подключения).
type
для объекта события netStatus
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
info | Объект со свойствами, описывающими состояние объекта или условие ошибки. |
target | Объект NetConnection или NetStream, сообщающий свое состояние. |
См. также
onCuePoint | Событие |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Добавляет прослушиватель, реагирующий на достижение встроенной ключевой точки во время воспроизведения видеофайла. Данный прослушиватель можно использовать для запуска действий в коде, когда воспроизведение видео достигает определенной ключевой точки. Это позволяет синхронизировать другие действия в приложении с событиями воспроизведения видео. Информацию о форматах видеофайлов, поддерживаемых Flash Media Server, см. в документации по серверу Flash Media Server.
onCuePoint
на самом деле является свойством объекта NetStream.client
. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream. Для прослушивания или обработки onImageData
в качестве события нельзя использовать ни метод addEventListener()
, ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:
client
экземпляра NetStream.Связанный прослушиватель событий запускается после вызова метода NetStream.play()
, но перед продвижением точки воспроизведения.
В видеофайл можно встроить следующие типы ключевых точек:
time
данной точки. Ключевые точки навигации часто используются как закладки или точки входа, облегчающие пользователям перемещение по видеофайлу.Объект события onCuePoint
имеет следующие свойства:
Свойство | Описание |
---|---|
name | Имя, присвоенное данной ключевой точке при встраивании в видеофайл. |
parameters | Ассоциативный массив парных строк "имя-значение", определенных для данной ключевой точки. В качестве имени или значения параметра можно использовать любую допустимую строку. |
time | Время (в секундах) возникновения ключевой точки во время воспроизведения видеофайла. |
type | Тип достигнутой ключевой точки (точка навигации или события). |
Ключевые точки в видеофайле можно определить при первом кодировании файла или при импортировании фрагмента ролика в инструменте разработки Flash с помощью мастера импорта видео.
Событие onMetaData
также извлекает информацию о ключевых точках в видеофайле. Тем не менее, событие onMetaData
получает информацию обо всех ключевых точках до начала воспроизведения видеоданных. Событие onCuePoint
получает сведения об отдельной ключевой точке в момент времени, указанной для данной точки во время воспроизведения.
Как правило, для того чтобы ваш код отреагировал на определенную ключевую точку в момент ее возникновения, следует применить в коде событие onCuePoint
, позволяющее инициировать какое-либо действие.
С помощью списка ключевых точек, предоставленных событию onMetaData
, пользователь может начинать воспроизведение видео в предварительно определенных точках внутри видеопотока. Чтобы воспроизвести видео с определенной ключевой точки, передайте значение свойства time
данной точки методу NetStream.seek()
.
См. также
onImageData | Событие |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.115.0 |
Добавляет прослушиватель событий, реагирующий на получение проигрывателем Flash Player графических данных в виде массива байт, встроенного в воспроизводимый мультимедийный файл. Данные изображения могут быть преобразованы в содержимое формата JPEG, PNG или GIF. Используйте метод flash.display.Loader.loadBytes()
для загрузки байтового массива в экранный объект.
onImageData
на самом деле является свойством объекта NetStream.client
. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream. Для прослушивания или обработки onImageData
в качестве события нельзя использовать ни метод addEventListener()
, ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:
client
экземпляра NetStream.Связанный прослушиватель событий запускается после вызова метода NetStream.play()
, но перед продвижением точки воспроизведения.
Объект события onImageData содержит данные изображения в качестве байтового массива, переданного по каналу данных AMF0.
Netstream.client
для обработки функций обратного вызова для onTextData
и onImageData
. Для хранения байтового массива функция onImageDataHandler()
использует объект события onImageData — imageData
. Функция onTextDataHandler()
использует объект события onTextData textData
для хранения блоков текстовых данных (каждый блок данных является свойством объекта textData
).
Значение параметра yourURL
в коде необходимо заменить на фактическое место размещения мультимедийного файла, содержащего метаданные в форме текста или изображения.
Также для обработки данных изображения и текста можно использовать специальный класс. Подробные сведения и примеры см. в статье Обработка метаданных и ключевых точек в видеоматериалах Flash.
package { import flash.display.*; import flash.net.*; import flash.media.*; import flash.system.*; import flash.events.*; public class OnTextDataExample extends Sprite { public function OnTextDataExample():void { var customClient:Object = new Object(); customClient.onImageData = onImageDataHandler; customClient.onTextData = onTextDataHandler; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.play("yourURL"); my_ns.client = customClient; var my_video:Video = new Video(); my_video.attachNetStream(my_ns); addChild(my_video); } public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); var imageloader:Loader = new Loader(); imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object. addChild(imageloader); } public function onTextDataHandler(textData:Object):void { trace("--- textData properties ----"); var key:String; for (key in textData) { trace(key + ": " + textData[key]); } } } }
См. также
onMetaData | Событие |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Добавляет прослушиватель, реагирующий на получение проигрывателем Flash Player описательной информации, встроенной в воспроизводимое видео. Информацию о форматах видеофайлов, поддерживаемых Flash Media Server, см. в документации по серверу Flash Media Server.
onMetaData
на самом деле является свойством объекта NetStream.client
. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream и свойства NetStream.client
. Для прослушивания или обработки onImageData
в качестве события нельзя использовать ни метод addEventListener()
, ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:
client
экземпляра NetStream.Служебная программа Flash Video Exporter (версии 1.1 или более поздней версии) встраивает различные данные (продолжительность видео, дата создания, скорости передачи данных и т.п.) в сам видеофайл. Разные видеокодеры вставляют разные наборы метаданных.
Связанный прослушиватель событий запускается после вызова метода NetStream.play()
, но перед продвижением точки воспроизведения.
В большинстве случаев, значение продолжительности, встроенное в метаданные потока, является не точным, а лишь приблизительным показателем фактической продолжительности. Другими словами, оно не всегда совпадает со значением свойства NetStream.time
, когда точка воспроизведения находится в конце видеопотока.
Объект события, передаваемый обработчику событий onMetaData, содержит одно свойство для каждого элемента данных.
См. также
onPlayStatus | Событие |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Добавляет прослушиватель, которые реагирует на завершение воспроизведения потока объектом NetStream. Связанный объект событий передает информацию в дополнение к сведениям, возвращенным событием netStatus
. С помощью этого свойства можно запускать действия в коде, когда объект NetStream переключится с одного потока на другой поток в списке воспроизведения (на что указывает информационный объект NetStream.Play.Switch
) или когда объект NetStream завершит воспроизведение (на что указывает информационный объект NetStream.Play.Complete
).
Объект onPlayStaus
на самом деле является свойством объекта NetStream.client
. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream. Для прослушивания или обработки onImageData
в качестве события нельзя использовать ни метод addEventListener()
, ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:
client
экземпляра NetStream.Данное событие возвращает информационный объект со следующими свойствами:
Свойство code | Свойство level | Значение |
---|---|---|
NetStream.Play.Switch | status | Подписчик переключается в списке воспроизведения с одного потока на другой. |
NetStream.Play.Complete | status | Воспроизведение завершено. |
NetStream.Play.TransitionComplete | status | Подписчик переключается на новый поток в результате переключения скорости передачи битов потока. |
См. также
onTextData | Событие |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.115.0 |
Добавляет прослушиватель событий, реагирующий на получение проигрывателем Flash Player текстовых данных, встроенных в воспроизводимый мультимедийный файл. Текстовые данные представлены в формате UTF-8 и могут содержать информацию о форматировании на основе спецификации 3GP Timed Text.
onTextData
на самом деле является свойством объекта NetStream.client
. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream. Для прослушивания или обработки onImageData
в качестве события нельзя использовать ни метод addEventListener()
, ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:
client
экземпляра NetStream.Связанный прослушиватель событий запускается после вызова метода NetStream.play()
, но перед продвижением точки воспроизведения.
Объект события onTextData содержит по одному свойству для каждого отрывка текстовых данных.
Netstream.client
для обработки функций обратного вызова для onTextData
и onImageData
. Для хранения байтового массива функция onImageDataHandler()
использует объект события onImageData — imageData
. Функция onTextDataHandler()
использует объект события onTextData textData
для хранения блоков текстовых данных (каждый блок данных является свойством объекта textData
).
Значение параметра yourURL
в коде необходимо заменить на фактическое место размещения мультимедийного файла, содержащего метаданные в форме текста или изображения.
Также для обработки данных изображения и текста можно использовать специальный класс. Подробные сведения и примеры см. в статье Обработка метаданных и ключевых точек в видеоматериалах Flash.
package { import flash.display.*; import flash.net.*; import flash.media.*; import flash.system.*; import flash.events.*; public class OnTextDataExample extends Sprite { public function OnTextDataExample():void { var customClient:Object = new Object(); customClient.onImageData = onImageDataHandler; customClient.onTextData = onTextDataHandler; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.play("yourURL"); my_ns.client = customClient; var my_video:Video = new Video(); my_video.attachNetStream(my_ns); addChild(my_video); } public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); var imageloader:Loader = new Loader(); imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object. addChild(imageloader); } public function onTextDataHandler(textData:Object):void { trace("--- textData properties ----"); var key:String; for (key in textData) { trace(key + ": " + textData[key]); } } } }
См. также
onXMPData | Событие |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Устанавливает прослушиватель, реагирующий на получение проигрывателем Flash Player информации о платформе Adobe Extensible Metadata Platform (XMP), встроенной в воспроизводимое видео. Информацию о форматах видеофайлов, поддерживаемых Flash Media Server, см. в документации по серверу Flash Media Server.
onXMPData
на самом деле является свойством объекта NetStream.client
. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream и свойства NetStream.client
. Для прослушивания или обработки onImageData
в качестве события нельзя использовать ни метод addEventListener()
, ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:
client
экземпляра NetStream.Связанный прослушиватель событий запускается после вызова метода NetStream.play()
, но перед продвижением точки воспроизведения.
Объект, передаваемый функции обработчика событияonXMPData()
, имеет одно свойство data
, содержащее строковое значение. Эта строка генерируется из поля UUID верхнего уровня. (Для поля верхнего уровня 128-разрядный UUID имеет значение BE7ACFCB-97A9-42E8-9C71-999491E3AFAC
.) Это поле UUID верхнего уровня содержит только один документ XML, представленный в виде строки UTF-8, заканчивающейся на 0.
См. также
CONNECT_TO_FMS | Константа |
public static const CONNECT_TO_FMS:String = "connectToFMS"
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Статический объект, передаваемый в качестве параметра конструктору для экземпляра NetStream. Это значение по умолчанию для второго параметра в конструкторе NetStream. Оно не используется приложением для последовательного воспроизведения содержимого. Когда этот параметр используется, конструктор создает подключение к экземпляру Flash Media Server.
DIRECT_CONNECTIONS | Константа |
public static const DIRECT_CONNECTIONS:String = "directConnections"
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Создает подключение между одноранговыми издателями Передайте эту строку в качестве второго (необязательного) параметра конструктору для экземпляра NetStream. С помощью этой строки приложение может создать подключение NetStream с целью публикации аудио и видео для клиентов.
videoURL
. В данном случае, FLV-файл Video.flv находится в том же каталоге, где размещается SWF-файл.
В данном примере код, создающий объекты Video и NetStream, а также вызывающий методы Video.attachNetStream()
и NetStream.play()
, размещен в функции обработчика. Обработчик вызывается только при успешном подключении к объекту NetConnection (другими словами, когда событие netStatus
возвращает объект info
со свойством code
, что свидетельствует об успешном выполнении задачи). Рекомендуется перед вызовом NetStream.play()
дождаться успешного подключения.
package { import flash.display.Sprite; import flash.events.NetStatusEvent; import flash.events.SecurityErrorEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.Event; public class NetConnectionExample extends Sprite { private var videoURL:String = "Video.flv"; private var connection:NetConnection; private var stream:NetStream; public function NetConnectionExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Stream not found: " + videoURL); break; } } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.client = new CustomClient(); var video:Video = new Video(); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } } } class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate); } public function onCuePoint(info:Object):void { trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type); } }