Главная / Action Script 3
Пакетflash.net
Классpublic class NetStream
НаследованиеNetStream Inheritance EventDispatcher Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Класс NetStream устанавливает одностороннее потоковое подключение между проигрывателем Flash Player и сервером Flash Media Server или между проигрывателем Flash Player и локальной файловой системой. Объект NetStream является каналом в рамках объекта NetConnection. Данный канал может опубликовать поток с помощью метода 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 предоставляет целый ряд методов и свойств, которые можно использовать для отслеживания состояния файла в процессе его загрузки или воспроизведения, а также для пользовательского управления процессом воспроизведения (остановка, пауза и т.д.).

Общий процесс обработки для потокового аудио и видео. Следующие действия описывают процесс обработки для публикации аудио и видео в реальном времени.

  1. Создайте новый объект NetConnection.
  2. С помощью метода NetConnection.connect() подключитесь к экземпляру приложения на сервере.
  3. Создайте объект NetStream в целях создания потока данных в рамках подключения.
  4. Используйте метод NetStream.attachAudio() для захвата и отправки аудиоданных через поток, а метод NetStream.attachCamera() — для захвата и отправки видео.
  5. С помощью метода 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-файла во время воспроизведения можно двумя способами.

Примечание. Чтобы отправить данные через аудиофайл, например в формате MP3, используйте класс Sound для связи файла с объектом Sound. Затем используйте свойство Sound.id3 для считывания метаданных из звукового файла.

Посмотреть примеры

См. также

flash.media.Video
flash.net.NetConnection
send()
client
onImageData
onMetaData
Основы видео
Введение в работу с видео


Общедоступные свойства
 СвойствоОпределено
  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
 Inheritedconstructor : 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
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  soundTransform : SoundTransform
Управляет звуком в данном объекте NetStream.
NetStream
  time : Number
[только для чтения] Положение точки воспроизведения (в секундах).
NetStream
Общедоступные методы
 МетодОпределено
  
NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Создает поток, с помощью которого можно воспроизводить видеофайлы через заданный объект NetConnection.
NetStream
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях.
EventDispatcher
  
Задает аудиопоток, отправляемый через объект NetStream из объекта Microphone, переданного в качестве источника.
NetStream
  
attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Начинает захват видео с видеокамеры, либо останавливает запись, если параметр theCamera имеет значение null.
NetStream
  
Останавливает воспроизведение всех данных в потоке, присваивает свойству time значение 0 и делает поток доступным для использования.
NetStream
 Inherited
Передает событие в поток событий.
EventDispatcher
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
Вызывается, когда поток одноранговой публикации совпадает с потоком одноранговой подписки.
NetStream
  
Приостанавливает воспроизведение видеопотока.
NetStream
  
play(... arguments):void
Начинает воспроизведение файлов мультимедиа.
NetStream
  
Начинает воспроизведение мультимедийных файлов с использованием одного из нескольких вариантов.
NetStream
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
publish(name:String = null, type:String = null):void
Отправляет потоковое аудио, видео и текстовые сообщения от клиента на сервер Flash Media Server, дополнительно записывая поток в ходе передачи.
NetStream
  
Определяет, воспроизводится ли входящий звук в потоке.
NetStream
  
Определяет, воспроизводится ли входящее видео в потоке.
NetStream
  
Указывает частоту кадров для входящего видео.
NetStream
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
  
Возобновляет воспроизведение приостановленного видеопотока.
NetStream
  
seek(offset:Number):void
Осуществляет поиск ключевого кадра (так называемого I-кадра), расположенного ближе всего к указанной точке.
NetStream
  
send(handlerName:String, ... arguments):void
Отправляет сообщение по опубликованному потоку всем подписавшимся клиентам.
NetStream
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Приостанавливает или возобновляет воспроизведение потока.
NetStream
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправляется, когда исключение создается асинхронным образом, то есть в коде, изначально имеющем асинхронную природу.NetStream
 Inherited[многоадресное событие] Отправляется, когда проигрыватель 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
Версии среды выполнения:  1.0 9

Число секунд данных, в настоящий момент находящихся в буфере. Используя данное свойство вместе со свойством bufferTime, можно определить, насколько близок момент полного заполнения буфера (это необходимо, например, чтобы оповестить пользователя, ожидающего загрузки данных в буфер).



Реализация
    public function get bufferLength():Number

См. также

bufferTimeсвойство 
bufferTime:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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
Версии среды выполнения:  1.0 9

Число байт данных, загруженных в проигрыватель Flash Player. Используя данное свойство вместе со свойством bytesTotal, можно определить, насколько близок момент полного заполнения буфера (это необходимо, например, чтобы оповестить пользователя, ожидающего загрузки данных в буфер).



Реализация
    public function get bytesLoaded():uint

См. также

bytesTotalсвойство 
bytesTotal:uint  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Общий размер файла, загружаемого в проигрыватель Flash Player (в байтах).



Реализация
    public function get bytesTotal():uint

См. также

checkPolicyFileсвойство 
checkPolicyFile:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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 выполняет следующие действия в указанном ниже порядке:

  1. Проигрыватель Flash Player анализирует ранее загруженные файлы политик.
  2. Проигрыватель Flash Player пытается загрузить любые файлы действующих политик, указанные в вызовах метода Security.loadPolicyFile().
  3. Проигрыватель Flash Player производит попытку загрузить файл политик из адреса по умолчанию, который соответствует URL-адресу, переданному 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
Версии среды выполнения:  1.0 9

Задает объект, для которого вызываются методы обратного вызова для обработки потоковой передачи или данных FLV-файла. Объект по умолчанию: this (создаваемый объект NetStream). Если в свойстве client указать другой объект, методы обратного вызова будут вызываться на этом другом объекте. Объект NetStream.client может вызывать следующие функции и получать связанный объект данных: onCuePoint(), onImageData(), onMetaData(), onPlayStatus() onTextData() и onXMPData.

Чтобы связать свойство client с обработчиком событий, выполните следующие действия.

  1. Создайте объект и назначьте его свойству client объекта NetStream:
         var customClient:Object = new Object();
         my_netstream.client = customClient;
         
  2. Назначьте функцию обработчика для нужного события данных в качестве свойства объекта Client:
         customClient.onImageData = onImageDataHandler;           
         
  3. Напишите функцию обработчика для получения объекта события данных, такого как:
          public function onImageDataHandler(imageData:Object):void {
                  trace("imageData length: " + imageData.data.length);
          }
         

Когда данные передаются через поток или при воспроизведении, объект события данных (в данном случае это объект imageData) заполняется данными. См. описание onImageData, содержащее полный пример объекта, назначенного свойству client.

Чтобы связать свойство client с подклассом, выполните следующие действия.

  1. Создайте подкласс с функцией обработчика, чтобы получить объект события данных:
         class CustomClient {
            public function onMetaData(info:Object):void {
                trace("metadata: duration=" + info.duration + " framerate=" + info.framerate);
         }
         
  2. Назначьте экземпляр подкласса свойству 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
Версии среды выполнения:  1.0 9

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



Реализация
    public function get currentFPS():Number
farIDсвойство 
farID:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Идентификатор удаленного узла, подключенного к данному экземпляру NetStream. Это свойство определяется только для подключений RTMFP.



Реализация
    public function get farID():String
farNonceсвойство 
farNonce:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Значение, выбираемое преимущественно на другом конце этого потока (уникальное в отношении данного подключения). Это значение появляется на другом конце потока в качестве его значения nearNonce. Это свойство определяется только для подключений RTMFP.



Реализация
    public function get farNonce():String
infoсвойство 
info:NetStreamInfo  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Возвращает объект NetStreamInfo, свойства которого содержат статистические данные о качестве обслуживания. Объект представляет собой снимок текущего состояния.



Реализация
    public function get info():NetStreamInfo

См. также

liveDelayсвойство 
liveDelay:Number  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Число секунд данных в буфере подписывающего потока в режиме реального времени (небуферизованном). Данное свойство указывает текущую задержку в сетевой передаче данных (время запаздывания).

Данное свойство используется преимущественно для работы с сервером Flash Media Server (более подробную информацию см. в описании класса).

С помощью значения этого свойства можно приблизительно измерить качество передачи потока и сообщить результат пользователю.



Реализация
    public function get liveDelay():Number
maxPauseBufferTimeсвойство 
maxPauseBufferTime:Number  [чтение и запись]

Задает время буферизации сообщений во время режима паузы (в секундах). Это свойство можно использовать для ограничения времени буферизации во время режима паузы. По достижении предельного значения NetStream.bufferLength буферизация прекращается. Если это значение не задано, по умолчанию используется ограничение 60 секунд или удвоенное значение NetStream.bufferTime при каждой паузе в зависимости от того, какое значение выше.



Реализация
    public function get maxPauseBufferTime():Number
    public function set maxPauseBufferTime(value:Number):void

См. также

nearNonceсвойство 
nearNonce:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Значение, выбираемое преимущественно на этом конце потока (уникальное в отношении данного подключения). Это значение появляется на другом конце потока в качестве его значения farNonce. Это свойство определяется только для подключений RTMFP.



Реализация
    public function get nearNonce():String
objectEncodingсвойство 
objectEncoding:uint  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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
Версии среды выполнения:  10, 1.5

Объект, содержащий все подписывающие экземпляры NetStream, прослушивающие этот публикующий экземпляр NetStream.



Реализация
    public function get peerStreams():Array
soundTransformсвойство 
soundTransform:SoundTransform  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Управляет звуком в данном объекте NetStream. Дополнительную информацию см. в описании класса SoundTransform.



Реализация
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform):void

См. также

timeсвойство 
time:Number  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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
Версии среды выполнения:  1.0 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().

Однако вследствие того, что параметр peerID является необязательным, для воспроизведения с последовательной загрузкой через подключение клиента к серверу действует следующее:

     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("rtmp://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
Версии среды выполнения:  1.0 9

Задает аудиопоток, отправляемый через объект NetStream из объекта Microphone, переданного в качестве источника. Данный метод доступен только издателю указанного потока.

Метод attachAudio используется при работе с сервером Flash Media Server. Данный метод часто вызывается пользователем, отправляющим аудио в реальном времени (или видео в реальном времени вместе с аудиоданными) с клиентского компьютера на сервер.

Данный метод можно вызвать до или после того, как будет вызван метод publish()и фактически начата передача. Для прослушивания аудио подписчики должны вызвать метод NetStream.play(). Настройте чувствительность микрофона, чтобы она соответствовала чувствительности устройства захвата звука, и задайте пороговое значение уровня тишины с использованием метода setSilenceLevel(). Можно управлять свойствами звука (громкость и панорамирование) этого звукового потока с использованием свойства soundTransform объекта микрофона.

     var conn:NetConnection = new NetConnection();
     conn.connect("rtmp://server.domain.com/path");
     var stream:NetStream = new NetStream(conn);
     var live_mic:Microphone = Microphone.get();
     live_mic.rate = 8;
     live_mic.setSilenceLevel(20,200);
     var soundTrans:SoundTransform = new SoundTransform();
     soundTrans.volume = 6;
     live_mic.soundTransform = soundTrans;
     stream.attachAudio(live_mic);
     stream.publish("mic_stream","live")
     

Параметры

microphone:Microphone — Источник передаваемого аудиопотока.

См. также

attachCamera()метод 
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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 минут. Это можно выполнить двумя различными способами:

В обоих случаях захватываются одни и те же 500 кадров, и оба подхода имеют функциональное применение. Выбор нужного подхода в основном зависит от требований к воспроизведению снятого материала. Например, во втором случае аудио может записываться на протяжении всего времени. Вдобавок, оба файла будут приблизительно одного размера.

Параметры

theCamera:Camera — Источник передачи видео. Допустимые значения: объект Camera (запускающий захват видео) и null. При установке значения null проигрыватель Flash Player прекращает захват видео, при этом любые дополнительные параметры, которые вы отправляете, игнорируются.
 
snapshotMilliseconds:int (default = -1) — Указывает, что собой представляет видеопоток: непрерывный поток, отдельный кадр или серия отдельных кадров, используемая для создания замедленной киносъемки.
  • Если опустить этот параметр, проигрыватель Flash Player будет записывать все видео до тех пор, пока значение null не будет передано методу attachCamera.
  • Если значение равно 0, проигрыватель Flash Player захватывает только один видеокадр. Используйте данное значение для передачи "снимков" в рамках предварительно существующего потока. В коде Flash недопустимые, отрицательные или нечисловые аргументы воспринимаются как 0.
  • Если передать положительное число, система Flash захватит одиночный видеокадр, а затем добавит паузу заданной длины в качестве концевого кадра на снимке. Используйте данное значение для создания эффектов замедленной киносъемки.

close()метод 
public function close():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Останавливает воспроизведение всех данных в потоке, присваивает свойству time значение 0 и делает поток доступным для использования. Данный метод также удаляет локальную копию видеофайла, загруженную по протоколу HTTP. Несмотря на то, что проигрыватель Flash Player удаляет локальную копию созданного им файла, она может сохраняться в кэш-каталоге обозревателя. Чтобы полностью предотвратить кэширование или локальное хранение видеофайла, используйте Flash Media Server.

При использовании Flash Media Server данный метод вызывается незаметно при вызове NetStream.play() из публикующего потока или при вызове NetStream.publish() из подписывающего потока. Обратите внимание:

См. также

onPeerConnect()метод 
public function onPeerConnect(subscriber:NetStream):Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

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

Дополнительные сведения о безопасности см. в следующих ресурсах.

Параметры

... arguments — Местоположение файла мультимедиа для воспроизведения в виде строки, свойства URLRequest.url или ссылающейся на них переменной. Можно воспроизводить локальные файлы, хранящиеся в том же каталоге, где и SWF-файл, или в подкаталоге. Тем не менее переход в каталог верхнего уровня запрещен.

При работе с Flash Media Server метод play() принимает следующие аргументы:

ИмяОбязательноеОписание
name:ObjectОбязательное Имя записанного файла, идентификатор для данных в реальном времени, опубликованных NetStream.publish(), или значение false. Если значение равно false, воспроизведение потока прекращается и любые дополнительные параметры игнорируются. Для получения дополнительной информации о синтаксисе имени файла см. таблицу с форматами файлов ниже следующей таблицы.
start:NumberНеобязательно Время запуска (в секундах). Допустимые значения: -2, -1, 0 или любое положительное число. Значение по умолчанию: -2. В этом случае сначала идет поиск потока в реальном времени, затем — записанного потока. Если ни один из них не будет найден, то будет открыт поток в реальном времени. Если значение равно -1, воспроизводится только поток в реальном времени. Если значение равно 0 или представлено положительным числом, воспроизводит записанный поток, начиная с секунд, указанных в параметре start.
len:Number Необязательно, если указан параметр start. Продолжительность воспроизведения (в секундах). Допустимые значения: -1, 0 или любое положительное число. Значение по умолчанию: -1. В этом случае до конца воспроизводится прямой (в реальном времени) или записанный поток. Если значение равно 0, воспроизводится один кадр, находящийся start секунд от начала записанного потока. Если значением является положительное число, воспроизводится прямой или записанный поток в течение len секунд.
reset:Object Необязательно, если указан параметр len. Необходимо ли удалить список воспроизведения. Значение по умолчанию равно 1 или true. В этом случае удаляются все предыдущие вызовы play, и сразу же воспроизводится name. Если значение равно 0 или false, то поток добавляется в список воспроизведения. Если значение равно 2, то список воспроизведения сохраняется, при этом все сообщения потока возвращаются не через определенные интервалы, а сразу. Если значение равно 3, то производится удаление списка воспроизведения и одновременный возврат всех сообщений потока.

Для воспроизведения доступны форматы файлов, описанные в следующей таблице. Синтаксис отличается в зависимости от формата файла.

Формат файлаСинтаксисПример
FLVИмя потока необходимо указать в виде строки без расширения имени файла.NetStream.play("myFLVStream");
MP3 или ID3Имя потока необходимо указать в виде строки с префиксом mp3: или id3: соответственно и без расширения имени файла.NetStream.play("mp3:myMP3Stream"); NetStream.play("id3:myID3data");
Файлы на основе MPEG-4 (например F4V, MP4)Имя потока необходимо указать в виде строки с расширением имени файла и префиксом mp4:. Префикс позволяет указать в Flash Media Server, что в файле содержатся H.264-кодированное видео и AAC-кодированный звук в формате контейнера MPEG-4 Part 14.Для воспроизведения файла myVideo.f4v выполните следующее: NetStream.play("mp4:myVideo.f4v"); Для воспроизведения файла myVideo.mp4 выполните следующее: NetStream.play("mp4:myVideo.mp4");


Выдает
SecurityError — Локальные ненадежные SWF-файлы изолированы от Интернета. Данное ограничение можно обойти, если переклассифицировать этот SWF-файл как локальный с сетевым подключением или доверенный.
 
ArgumentError — Необходимо указать не менее одного параметра.
 
Error — Недопустимый NetStream Object. Это может быть вызвано сбоем NetConnection.

См. также


Пример
Flash Media Server В данном примере воспроизводится записанный файл F4V с самого начала в течение 100 секунд:
     ns.play("mp4:record1.f4v", 0, 100, true);
     
Flash Media Server В данном примере воспроизводится прямой поток FLV, опубликованный клиентом, с начала и до конца, при этом происходит мгновенный запуск и удаление любых предыдущих потоков:
     ns.play("stephen");
     
play2()метод 
public function play2(param:NetStreamPlayOptions):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Начинает воспроизведение мультимедийных файлов с использованием одного из нескольких вариантов.

Этот метод представляет собой расширенную версию 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
Версии среды выполнения:  1.0 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. Приложение должно обрабатывать событие в сценарии на стороне сервера. Чтобы остановить публикацию, вызовите метод NetStream.close(). Когда клиент прекращает публикацию, приложение получает событие onUnpublish. Дополнительную информацию см. в Справочник по языку Flash Media Server Server-Side ActionScript.

Данный метод может отправить событие netStatus с несколькими различными информационными объектами. Например, если кто-либо уже ведет публикацию на потоке с указанным именем, событие netStatus отправляется со свойством кода NetStream.Publish.BadName. Дополнительную информацию см. в описании события netStatus.

Параметры

name:String (default = null) — Строка, идентифицирующая поток. Клиенты, подписывающиеся на данный поток, должны передать это же имя при вызове метода NetStream.play(). Не ставьте после имени потока символ "/". Например, не используйте в качестве имени потока bolero/. Для получения дополнительной информации о синтаксисе имени потока см. описание NetStream.play().
 
type:String (default = null) — Строка, указывающая способ публикации потока. Допустимые значения: record, append и live. Значение по умолчанию: live.
  • Если будет передано значение record, проигрыватель Flash Player публикует и записывает данные в реальном времени, сохраняя записанные данные в новом файле под именем, совпадающим со значением, которое было передано параметру name. Файл хранится на сервере в подкаталоге внутри каталога, в котором содержится серверное приложение. Если файл существует, он будет перезаписан.
  • Если будет передано значение append, проигрыватель Flash Player публикует и записывает данные в реальном времени, добавляя записанные данные в файл, имя которого совпадает со значением, переданным параметру name. Этот файл хранится на сервере в подкаталоге внутри каталога, в котором содержится серверное приложение. Если не будет найден файл с идентичным значением параметра name, такой файл будет создан.
  • Если данный параметр опущен или передано значение live, проигрыватель Flash Player публикует данные в реальном времени, но не записывает их. Существующий файл, имя которого совпадает со значением, переданным параметру name, будет удален.

См. также

receiveAudio()метод 
public function receiveAudio(flag:Boolean):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Определяет, воспроизводится ли входящий звук в потоке. Данный метод доступен не издателю потока, а только клиентам, подписанным на указанный поток.

Данный метод используется преимущественно для работы с сервером Flash Media Server (более подробную информацию см. в описании класса).

Данный метод можно вызвать до или после того, как будет вызван метод NetStream.play()и фактически начат прием потока. Например, эти методы можно присвоить той кнопке, которую пользователь нажимает, чтобы включить или выключить звук на входящем аудиопотоке.

Если указанный поток содержит только аудиоданные, то передача значения false данному методу останавливает приращение NetStream.time.

Параметры

flag:Boolean — Указывает, воспроизводится (true) или не воспроизводится (false) входящее аудио в потоке. Значение по умолчанию — true.

receiveVideo()метод 
public function receiveVideo(flag:Boolean):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Определяет, воспроизводится ли входящее видео в потоке. Данный метод доступен не издателю потока, а только клиентам, подписанным на указанный поток.

Данный метод используется преимущественно для работы с сервером Flash Media Server (более подробную информацию см. в описании класса).

Данный метод можно вызвать до или после того, как будет вызван метод NetStream.play()и фактически начат прием потока. Например, эти методы можно присвоить той кнопке, которую пользователь нажимает, чтобы отобразить или скрыть входящий видеопоток.

Если указанный поток содержит только видеоданные, то передача значения false данному методу останавливает приращение NetStream.time.

Параметры

flag:Boolean — Указывает, воспроизводится (true) или не воспроизводится (false) входящее видео в этом потоке. Значение по умолчанию — true.

receiveVideoFPS()метод 
public function receiveVideoFPS(FPS:Number):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Указывает частоту кадров для входящего видео. Данный метод доступен не издателю потока, а только клиентам, подписанным на указанный поток.

Данный метод используется преимущественно для работы с сервером Flash Media Server (более подробную информацию см. в описании класса).

Данный метод можно вызвать до или после того, как будет вызван метод NetStream.play()и фактически начат прием потока. Например, можно присоединить эти методы к текстовому полю, где пользователь может задать частоту кадров входящего видео.

Чтобы остановить получение видеоданных, передайте для параметра FPS значение 0. Чтобы определить текущую частоту кадров, используйте NetStream.currentFPS.

Если в целях уменьшения частоты видеокадров передать определенное значение параметру FPS, проигрыватель Flash Media Server предпримет попытку снизить частоту кадров, при этом сохраняя целостность видеоизображения. Через каждые два ключевых кадра сервер посылает минимальное количество кадров, необходимое для обеспечения заданной частоты кадров. Тем не менее, следует помнить, что промежуточные кадры должны отправляться рядом с ключевыми. В противном случае, видеоизображение будет испорченным. Таким образом, необходимое число кадров отправляется немедленно в сопровождении ключевого кадра. Так как кадры распределены неравномерно, движение выглядит смягченным в тех сегментах, прерываемых остановками.

Параметры

FPS:Number — Указывает частоту кадров (в секунду), с которой будет воспроизводиться входящее видео.

resume()метод 
public function resume():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возобновляет воспроизведение приостановленного видеопотока. Если видео уже воспроизводится, вызов данного метода ни к чему не приведет.

См. также

seek()метод 
public function seek(offset:Number):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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.
  • Чтобы вернуться в начало потока, укажите 0 для offset.
  • Чтобы выполнить прямой поиск от начала потока, передайте число секунд, которое надо пропустить. Например, чтобы установить точку воспроизведения через 15 секунд от начала видео (или ключевой кадр перед 15 секундами), используйте myStream.seek(15).
  • Для поиска относительно текущего положения передайте NetStream.time + n или NetStream.time - n, чтобы поиск начинался на n секунд вперед или назад относительно текущего положения. Например, чтобы перейти на 20 секунд вперед от текущего положения, используйте синтаксис NetStream.seek(NetStream.time - 20).

См. также

send()метод 
public function send(handlerName:String, ... arguments):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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, а третий аргумент не применяйте вообще.

См. также


Пример
Flash Media Server В следующем примере создаются два объекта 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);
        }
     }
     
Flash Media Server В следующем примере создаются метаданные, которые затем добавляются в поток реального времени:
     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() );     
            }
         }
     
Flash Media Server Чтобы отреагировать на ключевой кадр данных, добавленный в видео, клиенту необходимо определить обработчик событий onMetaData. Обработчик событий onMetaData не регистрируется с методом addEventListener(). Он представляет собой функцию обратного вызова с именем onMetaData, например:
     public function onMetaData(info:Object):void {
        trace("width: " + info.width);
        trace("height: " + info.height);
     }
     
Flash Media Server В данном примере показан процесс создания списка воспроизведения на сервере:
     // 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);
     
Flash Media Server Если записанный видеофайл содержит только блоки данных, вы можете воспроизвести видеофайл с той скоростью, на которой он был изначально записан, или просто сразу получить все блоки данных.
     //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
Версии среды выполнения:  1.0 9

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

См. также

Сведения о событии
asyncError Событие
Тип объекта события: flash.events.AsyncErrorEvent
свойство AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется, когда исключение создается асинхронным образом, то есть в коде, изначально имеющем асинхронную природу. Данное событие отправляется, если сервер вызывает метод на клиенте, который не был определен.

Константа AsyncErrorEvent.ASYNC_ERROR определяет значение свойства type объекта события asyncError.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект, испытывающий сбой сетевой операции.
errorОшибка, запускаемая событием.

См. также

ioError Событие  
Тип объекта события: flash.events.IOErrorEvent
свойство IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою сетевой операции.

Задает значение свойства type для объекта события ioError.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, с которым произошла ошибка ввода/вывода.
textТекст, отображаемый в качестве сообщения об ошибке.
netStatus Событие  
Тип объекта события: flash.events.NetStatusEvent
свойство NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется, когда объект NetStream сообщает о своем состоянии или о случившейся ошибке. Событие netStatus содержит свойство info, представляющее собой информационный объект, который содержит определенные сведения о событии (например, количество успешных и неудачных попыток подключения).

Задает значение свойства type для объекта события netStatus.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
infoОбъект со свойствами, описывающими состояние объекта или условие ошибки.
targetОбъект NetConnection или NetStream, сообщающий свое состояние.

См. также

onCuePoint Событие  

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Добавляет прослушиватель, реагирующий на достижение встроенной ключевой точки во время воспроизведения видеофайла. Данный прослушиватель можно использовать для запуска действий в коде, когда воспроизведение видео достигает определенной ключевой точки. Это позволяет синхронизировать другие действия в приложении с событиями воспроизведения видео. Информацию о форматах видеофайлов, поддерживаемых Flash Media Server, см. в документации по серверу Flash Media Server.

onCuePoint на самом деле является свойством объекта NetStream.client. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream. Для прослушивания или обработки onImageData в качестве события нельзя использовать ни метод addEventListener(), ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:

Связанный прослушиватель событий запускается после вызова метода NetStream.play(), но перед продвижением точки воспроизведения.

В видеофайл можно встроить следующие типы ключевых точек:

Объект события onCuePoint имеет следующие свойства:

СвойствоОписание
nameИмя, присвоенное данной ключевой точке при встраивании в видеофайл.
parametersАссоциативный массив парных строк "имя-значение", определенных для данной ключевой точки. В качестве имени или значения параметра можно использовать любую допустимую строку.
timeВремя (в секундах) возникновения ключевой точки во время воспроизведения видеофайла.
typeТип достигнутой ключевой точки (точка навигации или события).

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

Событие onMetaData также извлекает информацию о ключевых точках в видеофайле. Тем не менее, событие onMetaData получает информацию обо всех ключевых точках до начала воспроизведения видеоданных. Событие onCuePoint получает сведения об отдельной ключевой точке в момент времени, указанной для данной точки во время воспроизведения.

Как правило, для того чтобы ваш код отреагировал на определенную ключевую точку в момент ее возникновения, следует применить в коде событие onCuePoint, позволяющее инициировать какое-либо действие.

С помощью списка ключевых точек, предоставленных событию onMetaData, пользователь может начинать воспроизведение видео в предварительно определенных точках внутри видеопотока. Чтобы воспроизвести видео с определенной ключевой точки, передайте значение свойства time данной точки методу NetStream.seek().

См. также

onImageData Событие  

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Добавляет прослушиватель событий, реагирующий на получение проигрывателем Flash Player графических данных в виде массива байт, встроенного в воспроизводимый мультимедийный файл. Данные изображения могут быть преобразованы в содержимое формата JPEG, PNG или GIF. Используйте метод flash.display.Loader.loadBytes() для загрузки байтового массива в экранный объект.

onImageData на самом деле является свойством объекта NetStream.client. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream. Для прослушивания или обработки onImageData в качестве события нельзя использовать ни метод addEventListener(), ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:

Связанный прослушиватель событий запускается после вызова метода 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
Версии среды выполнения:  1.0 9

Добавляет прослушиватель, реагирующий на получение проигрывателем Flash Player описательной информации, встроенной в воспроизводимое видео. Информацию о форматах видеофайлов, поддерживаемых Flash Media Server, см. в документации по серверу Flash Media Server.

onMetaData на самом деле является свойством объекта NetStream.client. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream и свойства NetStream.client. Для прослушивания или обработки onImageData в качестве события нельзя использовать ни метод addEventListener(), ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:

Служебная программа Flash Video Exporter (версии 1.1 или более поздней версии) встраивает различные данные (продолжительность видео, дата создания, скорости передачи данных и т.п.) в сам видеофайл. Разные видеокодеры вставляют разные наборы метаданных.

Связанный прослушиватель событий запускается после вызова метода NetStream.play(), но перед продвижением точки воспроизведения.

В большинстве случаев, значение продолжительности, встроенное в метаданные потока, является не точным, а лишь приблизительным показателем фактической продолжительности. Другими словами, оно не всегда совпадает со значением свойства NetStream.time, когда точка воспроизведения находится в конце видеопотока.

Объект события, передаваемый обработчику событий onMetaData, содержит одно свойство для каждого элемента данных.

См. также

onPlayStatus Событие  

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Добавляет прослушиватель, которые реагирует на завершение воспроизведения потока объектом NetStream. Связанный объект событий передает информацию в дополнение к сведениям, возвращенным событием netStatus. С помощью этого свойства можно запускать действия в коде, когда объект NetStream переключится с одного потока на другой поток в списке воспроизведения (на что указывает информационный объект NetStream.Play.Switch) или когда объект NetStream завершит воспроизведение (на что указывает информационный объект NetStream.Play.Complete).

Объект onPlayStaus на самом деле является свойством объекта NetStream.client. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream. Для прослушивания или обработки onImageData в качестве события нельзя использовать ни метод addEventListener(), ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:

Данное событие возвращает информационный объект со следующими свойствами:

Свойство codeСвойство levelЗначение
NetStream.Play.SwitchstatusПодписчик переключается в списке воспроизведения с одного потока на другой.
NetStream.Play.CompletestatusВоспроизведение завершено.
NetStream.Play.TransitionCompletestatusПодписчик переключается на новый поток в результате переключения скорости передачи битов потока.

См. также

onTextData Событие  

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9.0.115.0

Добавляет прослушиватель событий, реагирующий на получение проигрывателем Flash Player текстовых данных, встроенных в воспроизводимый мультимедийный файл. Текстовые данные представлены в формате UTF-8 и могут содержать информацию о форматировании на основе спецификации 3GP Timed Text.

onTextDataна самом деле является свойством объекта NetStream.client. Это не событие, однако его можно найти в разделе "События", так как он реагирует на событие данных при потоковой передаче мультимедийногосодержимого с помощью Flash Media Server или при воспроизведении FLV-файла. Дополнительные сведения см. в описании класса NetStream. Для прослушивания или обработки onImageData в качестве события нельзя использовать ни метод addEventListener(), ни любые другие методы EventDispatcher. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:

Связанный прослушиватель событий запускается после вызова метода 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
Версии среды выполнения:  10, 1.5

Устанавливает прослушиватель, реагирующий на получение проигрывателем 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. В данном случае необходимо определить отдельную функцию обратного вызова и прикрепить ее непосредственно к одному из следующих объектов:

Связанный прослушиватель событий запускается после вызова метода 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
Версии среды выполнения:  10, 1.5

Статический объект, передаваемый в качестве параметра конструктору для экземпляра NetStream. Это значение по умолчанию для второго параметра в конструкторе NetStream. Оно не используется приложением для последовательного воспроизведения содержимого. Когда этот параметр используется, конструктор создает подключение к экземпляру Flash Media Server.

DIRECT_CONNECTIONSКонстанта  
public static const DIRECT_CONNECTIONS:String = "directConnections"

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Создает подключение между одноранговыми издателями Передайте эту строку в качестве второго (необязательного) параметра конструктору для экземпляра NetStream. С помощью этой строки приложение может создать подключение NetStream с целью публикации аудио и видео для клиентов.

Примеры Как пользоваться примерами
NetConnectionExample.as

В следующем примере объект Video с классами NetConnection и NetStream используется для загрузки и воспроизведения FLV-файла. Чтобы запустить данный пример, вам потребуется FLV-файл, имя и место расположения которого совпадают с переменной, переданной 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);
    }
}