Paquete | flash.net |
Clase | public class NetStream |
Herencia | NetStream EventDispatcher Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Utilice la clase NetStream para realizar lo siguiente:
- Llame al método
NetStream.play()
para reproducir un archivo de medios de un disco local, servidor web o Flash Media Server. - Llame al método
NetStream.publish()
para publicar un vídeo, audio y flujo de datos en Flash Media Server. - Llame al método
NetStream.send()
para enviar mensajes de datos a todos los clientes suscritos. - Llame al método
NetStream.send()
para añadir metadatos a una transmisión en vivo. - Llame a
NetStream.appendBytes()
para transferir datos de ByteArray al objeto NetStream.
Nota:no puede reproducir y publicar una transmisión sobre el mismo objeto NetStream.
Adobe AIR y Flash Player 9.0.115.0 y versiones posteriores admiten archivos que proceden del formato contenedor MPEG-4 estándar. Estos archivos incluyen F4V, MP4, M4A, MOV, MP4V, 3GP y 3G2, si contienen vídeo H.264, audio codificado HE-AAC v2, o ambos. H.264 proporciona mayor calidad de vídeo a velocidades de bits inferiores en comparación con el mismo perfil de codificación en Sorenson o On2. AAC es un formato de audio estándar definido en el estándar de vídeo MPEG-4. HE-AAC v2 es una ampliación de AAC que utiliza técnicas de réplica de banda espectral (SBR) y estéreo paramétrico (PS) para aumentar la eficacia de la codificación a velocidades de bits bajas.
Para obtener información sobre los códecs y formatos de archivo admitidos, consulte lo siguiente:
- Documentación de Flash Media Server
- Compatibilidad de Flash Player con vídeo de alta definición H.264 y audio AAC
- Documentos de la especificación FLV/F4V
Recepción de datos desde un flujo de Flash Media Server o desde un archivo FLV progresivo
Flash Media Server, los archivos FLV y los archivos F4V pueden enviar objetos de eventos con datos a puntos de datos específicos durante la transmisión o la reproducción. Puede controlar los datos desde el flujo o el archivo FLV durante la reproducción de dos modos:
-
Asocie una propiedad client a un controlador de eventos para recibir el objeto de datos. Utilice la propiedad
NetStream.client
par asignar una objeto para llamada a funciones concretas de control de datos. El objeto asignado a la propiedadNetStream.client
puede detectar los siguientes puntos de datos:onCuePoint()
,onImageData()
,onMetaData()
,onPlayStatus()
,onSeekPoint()
,onTextData()
yonXMPData()
. Escriba procedimientos dentro de dichas funciones para controlar el objeto de datos devuelto por el flujo durante la reproducción. Consulte la propiedadNetStream.client
para obtener más información. - Asocie una propiedad client a una subclase de la clase NetStream y, después, escriba un controlador de eventos para recibir el objeto de datos. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Sin embargo, sí se puede crear una subclase de NetStream y definir el controlador de eventos en la subclase. También puede hacer que la subclase sea dinámica y añadir el controlador de eventos a una instancia de la subclase.
Espere a recibir un evento NetGroup.Neighbor.Connect
evento antes de utilizar la duplicación de objetos, enrutamiento directo o envío API.
Nota: para enviar datos mediante un archivo de audio, como un archivo MP3, utilice la clase Sound para asociar el archivo de audio con un objeto Sound. Posteriormente, utilice la propiedad Sound.id3
para leer metadatos del archivo de sonido.
Compatibilidad con vídeo codificado con H.264 en AIR for iOS
En el caso de vídeo H.264, AIR 3.0 for iOS (y versiones posteriores) admite un subconjunto de la API NetStream completa. En la siguiente tabla se enumeran los miembros de NetStream para reproducción que no se admiten en AIR for iOS:
Propiedades no admitidas | Métodos no admitidos | Eventos no admitidos |
---|---|---|
bufferTime | appendBytes() | onCuePoint (sólo funciona con archivos FLV) |
bufferLength | appendBytesAction() | onImageData |
backBufferTime | step() | onSeekPoint |
backBufferLength | onTextData | |
bufferTimeMax | onXMPData | |
bytesLoaded | drmError | |
currentFPS | drmStatus | |
inBufferSeek | onDRMContentData | |
info | drmAuthenticate | |
liveDelay | Código de evento de estado de DRM.encryptedFLV | |
maxPauseBufferTime | ||
soundTransform | ||
Todas las propiedades que describen conexiones RTMFP |
Para obtener información adicional sobre el uso AIR for iOS, consulte el método NetStream.play()
.
Elementos de API relacionados
Propiedad | Definido por | ||
---|---|---|---|
audioReliable : Boolean
Para conexiones RTMFP, especifica si el audio se envía con total fiabilidad. | NetStream | ||
audioSampleAccess : Boolean
En conexiones RTMFP, especifica si se permite capturar el flujo de audio entre pares suscritos a este objeto NetStream. | NetStream | ||
backBufferLength : Number [solo lectura]
El número de segundos de datos mostrados anteriormente que se guardan en caché para rebobinado y la reproducción. | NetStream | ||
backBufferTime : Number
Especifica cuántos datos mostrados anteriormente intenta Flash guardar en caché para el rebobinado y la reproducción, expresado en segundos. | NetStream | ||
bufferLength : Number [solo lectura]
El número de segundos de datos almacenados actualmente en el búfer. | NetStream | ||
bufferTime : Number
Especifica el tiempo que deben almacenarse en el búfer los mensajes antes de comenzar a mostrar la transmisión. | NetStream | ||
bufferTimeMax : Number
Especifica la duración máxima del búfer para contenido de transmisión en vivo, expresada en segundos. | NetStream | ||
bytesLoaded : uint [solo lectura]
El número de bytes de datos que se han cargado en la aplicación. | NetStream | ||
bytesTotal : uint [solo lectura]
El tamaño total en bytes del archivo que se está cargando en la aplicación. | NetStream | ||
checkPolicyFile : Boolean
Especifica si la aplicación debe intentar descargar un archivo de política entre distintos dominios desde el servidor del archivo de vídeo cargado antes de comenzar a cargarlo. | NetStream | ||
client : Object
Especifica el objeto en el que se invocan los métodos callback para controlar los datos del flujo o del archivo FL4/FLV. | NetStream | ||
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
currentFPS : Number [solo lectura]
El número de fotogramas por segundo que se muestran. | NetStream | ||
dataReliable : Boolean
Para conexiones RTMFP, especifica si las llamadas a NetStream.send() se envían con total fiabilidad. | NetStream | ||
farID : String [solo lectura]
Para conexiones RTMFP, el dentificador del extremo que está conectado con esta instancia de NetStream. | NetStream | ||
farNonce : String [solo lectura]
En conexiones RTMFP RTMPE, un valor elegido en gran parte por el otro extremo del flujo; exclusivo de esta conexión. | NetStream | ||
inBufferSeek : Boolean
Especifica si se almacenan en caché datos mostrados en búsqueda inteligente (TRUE) o no (FALSE). | NetStream | ||
info : NetStreamInfo [solo lectura]
Devuelve un objeto NetStreamInfo cuyas propiedades contienen estadísticas sobre la calidad del servicio. | NetStream | ||
liveDelay : Number [solo lectura]
El número de segundos de datos del búfer de la transmisión de suscripción en modo en vivo (sin búfer). | NetStream | ||
maxPauseBufferTime : Number
Indica el tiempo que se guardan en el búfer los mensajes en modo de pausa, en segundos. | NetStream | ||
multicastAvailabilitySendToAll : Boolean
En conexiones RTMFP, especifica si los mensajes de disponibilidad de fragmentos de multidifusión P2P se envían a todos los pares o a sólo a uno. | NetStream | ||
multicastAvailabilityUpdatePeriod : Number
En conexiones RTMFP, especifica el intervalo en segundos entre los mensajes enviados a los pares informándoles de que el nodo local tiene nuevos fragmentos multimedia de multidifusión P2P disponibles. | NetStream | ||
multicastFetchPeriod : Number
En conexiones RTMFP, especifica el tiempo en segundos entre el momento en que el nodo local detecta que hay disponible un fragmento multimedia de multidifusión P2P y cuando intenta obtenerlo desde un par. | NetStream | ||
multicastInfo : NetStreamMulticastInfo [solo lectura]
En conexiones RTMFP, devuelve un objeto NetStreamMulticastInfo cuyas propiedades contienen estadísticas sobre la calidad del servicio. | NetStream | ||
multicastPushNeighborLimit : Number
En conexiones RTMFP, especifica el número máximo de pares a los que se pueden enviar datos multimedia de multidifusión de forma proactiva. | NetStream | ||
multicastRelayMarginDuration : Number
En conexiones RTMFP, especifica el tiempo en segundos que los datos de multidifusión P2P siguen disponibles para enviarse a los pares que los soliciten una vez transcurrida la duración especificada. | NetStream | ||
multicastWindowDuration : Number
En conexiones RTMFP, especifica la duración en segundos de la ventana de reensamblaje de multidifusión P2P. | NetStream | ||
nearNonce : String [solo lectura]
En conexiones RTMFP y RTMPE, un valor elegido en gran parte por el otro extremo del flujo; exclusivo de esta conexión. | NetStream | ||
objectEncoding : uint [solo lectura]
La codificación del objeto (versión del AMF) para este objeto NetStream. | NetStream | ||
peerStreams : Array [solo lectura]
Objeto que alberga todas las instancias suscritas de NetStream que están detectando esta instancia de publicación de NetStream. | NetStream | ||
soundTransform : flash.media:SoundTransform
Controla el sonido de este objeto NetStream. | NetStream | ||
time : Number [solo lectura]
La posición, en segundos, de la cabeza lectora. | NetStream | ||
useHardwareDecoder : Boolean
Especifica si se utiliza descodificación con aceleración por hardware en la transmisión. | NetStream | ||
useJitterBuffer : Boolean
Minimiza la latencia en una transmisión en vivo sin búfer (bufferTime = 0). | NetStream | ||
videoReliable : Boolean
Para conexiones RTMFP, especifica si el vídeo se envía con total fiabilidad. | NetStream | ||
videoSampleAccess : Boolean
En conexiones RTMFP, especifica si se permite capturar el flujo de vídeo entre pares suscritos a este objeto NetStream. | NetStream | ||
videoStreamSettings : VideoStreamSettings
Especifica las propiedades de compresión de la transmisión. | NetStream |
Método | Definido por | ||
---|---|---|---|
Crea una transmisión que puede utilizar para reproducir archivos de medios y enviar datos a través de un objeto NetConnection. | NetStream | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento. | EventDispatcher | ||
Transfiere una instancia de ByteArray en un objeto NetStream para su reproducción. | NetStream | ||
Indica una discontinuidad temporal, vacía el FIFO, e informa analizador de bytes que debe esperar un encabezado de archivo o el comienzo de una etiqueta FLV. | NetStream | ||
Asocia un flujo a un nuevo objeto NetConnection. | NetStream | ||
Asocia una transmisión de audio enviada a un objeto NetStream desde un objeto Microphone transferido como origen. | NetStream | ||
Comienza a capturar vídeo desde una cámara, o bien detiene la captura si theCamera se establece como null. | NetStream | ||
Detiene la reproducción de todos los datos de la transmisión, establece la propiedad time con el valor 0 y deja la transmisión a disposición de otro usuario. | NetStream | ||
Distribuye un evento en el flujo del evento. | EventDispatcher | ||
Libera todos los recursos almacenados en el objeto NetStream. | NetStream | ||
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento. | EventDispatcher | ||
Indica si un objeto tiene definida una propiedad especificada. | Object | ||
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. | Object | ||
Se invoca cuando un flujo de publicación homólogo coincide con uno de suscripción. | NetStream | ||
Interrumpe la reproducción de un flujo de vídeo. | NetStream | ||
Reproduce un archivo de medios de un directorio local o un servidor web; se reproduce un archivo de medios o una transmisión en vivo desde Flash Media Server. | NetStream | ||
Alterna perfectamente entre archivos con varias velocidades de bits y permite la reanudación de NetStream si la conexión falla y se reconecta. | NetStream | ||
Extrae metadatos DRM desde un archivo multimedia almacenado localmente. | NetStream | ||
Indica si existe la propiedad especificada y si es enumerable. | Object | ||
Envía transmisiones de audio, vídeo y mensajes de datos desde un cliente a Flash Media Server y, opcionalmente, graba la transmisión. | NetStream | ||
Especifica si se reproduce audio entrante en la transmisión. | NetStream | ||
Especifica si se reproduce audio entrante en el flujo. | NetStream | ||
Especifica la velocidad de fotogramas del vídeo entrante. | NetStream | ||
Elimina un detector del objeto EventDispatcher. | EventDispatcher | ||
[estática]
En aplicaciones de AIR, esta acción elimina todos los datos de licencias de gestión de derechos digitales (DRM) guardados en la caché local. | NetStream | ||
Reanuda la reproducción de un flujo de vídeo interrumpido. | NetStream | ||
Busca el fotograma clave (también denominado fotograma I en la industria del vídeo) más cercano a la ubicación especificada. | NetStream | ||
Envía un mensaje en una transmisión publicada a todos los clientes suscritos. | NetStream | ||
Configura las credenciales de autenticación DRM necesarias para poder ver el contenido cifrado. | NetStream | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Avanza o retrocede el número especificado de fotogramas, en relación al fotograma mostrado actualmente. | NetStream | ||
Realiza una pausa o reanuda la reproducción de un flujo. | NetStream | ||
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Devuelve el valor simple del objeto especificado. | Object | ||
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto. | EventDispatcher |
Evento | Resumen | Definido por | ||
---|---|---|---|---|
[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos. | EventDispatcher | |||
Se distribuye cuando se emite una excepción de forma asíncrona, es decir, desde un código asíncrono nativo. | NetStream | |||
[evento broadcast] Se distribuye cuando Flash Player o de AIR pasan a estar inactivos. | EventDispatcher | |||
Se distribuye cuando un objeto NetStream intenta reproducir contenido cifrado con administración de derechos digitales (DRM) que requiere la autenticación de credenciales del usuario. | NetStream | |||
Se distribuye cuando un objeto NetStream obtiene un error relacionado con DRM al intentar reproducir un archivo cifrado con administración de derechos digitales. | NetStream | |||
Se distribuye cuando el contenido DRM (administración de derechos digitales) comienza a reproducirse (si el usuario está autenticado y autorizado para reproducir el contenido). | NetStream | |||
Se distribuye cuando se produce un error de entrada o salida que provoca que una operación de red se realice incorrectamente. | NetStream | |||
Se distribuye cuando se reproduce contenido de vídeo y se procesa cierto tipo de mensajes. | NetStream | |||
Se distribuye cuando un objeto NetStream informa sobre su estado o situación de error. | NetStream | |||
Establece un detector para responder cuando la reproducción del archivo de vídeo llegue a un punto de referencia. | NetStream | |||
Establece un detector para responder cuando AIR extrae metadatos de contenido DRM incorporados en un archivo multimedia. | NetStream | |||
Establece un detector para responder cuando Flash Player recibe datos de imagen como un conjunto de bytes incorporado en un archivo en reproducción. | NetStream | |||
Establece un detector para responder cuando Flash Player recibe información descriptiva incorporada en en el vídeo en reproducción. | NetStream | |||
Establece un detector para responder cuando un objeto NetStream haya reproducido completamente el flujo. | NetStream | |||
Se llama de forma sincrónica desde appendBytes() cuando el analizador de bytes añadidos encuentra un punto que interpreta como punto localizable (por ejemplo, un fotograma clave de vídeo). | NetStream | |||
Establece un detector para responder cuando Flash Player recibe datos de texto incorporados en un archivo en reproducción. | NetStream | |||
Establece un detector para responder cuando Flash Player recibe información específica a la tecnología Extensible Metadata Platform (XMP) de Adobe incrustada en el vídeo que se está reproduciendo. | NetStream | |||
Se distribuye cuando la aplicación intenta reproducir contenido cifrado con administración de derechos digitales (DRM); se invoca el método NetStream.play(). | NetStream |
Constante | Definido por | ||
---|---|---|---|
CONNECT_TO_FMS : String = "connectToFMS" [estática]
Objeto estático utilizado como parámetro en el constructor para una instancia de NetStream. | NetStream | ||
DIRECT_CONNECTIONS : String = "directConnections" [estática]
Crea una conexión del editor entre homólogos. | NetStream |
audioReliable | propiedad |
audioReliable:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Para conexiones RTMFP, especifica si el audio se envía con total fiabilidad. Si e sTRUE, todo el audio transmitido por NetStream es completamente fiable. Si es FALSE, el audio transmitido es no es totalmente fiable, sino que se retransmite durante un tiempo limitado y después se elimina. Puede utilizar el valor FALSE false para reducir la latencia a costa de calidad de audio.
Si intenta establecer esta propiedad en FLASE en un protocolo de red que no admita fiabilidad parcial, se omitirá el intento y la propiedad se establecerá en TRUE.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get audioReliable():Boolean
public function set audioReliable(value:Boolean):void
Elementos de API relacionados
audioSampleAccess | propiedad |
audioSampleAccess:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica si se permite capturar el flujo de audio entre pares suscritos a este objeto NetStream. Si es FALSE, el suscriptor intenta capturar el flujo de audio para mostrar errores de permisos.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get audioSampleAccess():Boolean
public function set audioSampleAccess(value:Boolean):void
Elementos de API relacionados
backBufferLength | propiedad |
backBufferLength:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
El número de segundos de datos mostrados anteriormente que se guardan en caché para rebobinado y la reproducción.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Esta propiedad sólo está disponible cuando los datos se transmiten desde Flash Media Server 3.5.3 o versión posterior; para obtener más información sobre Flash Media Server, consulte la descripción de la clase.
Para especificar cuánto datos mostrados anteriormente se almacenan en caché, utilice la propiedad Netstream.backBufferTime
.
Para evitar que los datos se almacenen en caché, establezca la propiedad Netstream.inBufferSeek
en FALSE.
Implementación
public function get backBufferLength():Number
Elementos de API relacionados
backBufferTime | propiedad |
backBufferTime:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Especifica cuántos datos mostrados anteriormente intenta Flash guardar en caché para el rebobinado y la reproducción, expresado en segundos. El valor predeterminado es 30 segundos en las aplicaciones de escritorio y 3 segundos para aplicaciones móviles.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Esta propiedad sólo está disponible cuando los datos se transmiten desde Flash Media Server versión 3.5.3 o posterior; para obtener más información sobre Flash Media Server, consulte la descripción de la clase.
Usar esta propiedad mejora el rendimiento de las operaciones de rebobinado, ya que los datos que ya se han mostrado no se vuelven a recuperar desde el servidor. En su lugar, el flujo se comienza a reproducir de nuevo desde el búfer. Durante la reproducción, los datos siguen transmitiéndose desde el servidor hasta que el búfer está lleno.
Si la posición de rebobinado es anterior a los datos que hay en la memoria caché, el búfer se vacía; los datos siguen transmitiéndose desde el servidor en la posición solicitada.
Para utilizar esta propiedad, establezca la propiedad Netstream.inBufferSeek
como TRUE.
Implementación
public function get backBufferTime():Number
public function set backBufferTime(value:Number):void
Elementos de API relacionados
bufferLength | propiedad |
bufferLength:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
El número de segundos de datos almacenados actualmente en el búfer. Puede utilizar esta propiedad con la propiedad bufferTime
para estimar cuánto le falta al búfer para llenarse (por ejemplo, para mostrar información al usuario que está esperando a que los datos se carguen en el búfer).
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get bufferLength():Number
Elementos de API relacionados
bufferTime | propiedad |
bufferTime:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Especifica el tiempo que deben almacenarse en el búfer los mensajes antes de comenzar a mostrar la transmisión.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
El valor predeterminado es 0,1 (una décima de segundo). Para determinar el número de segundos que hay actualmente en el búfer, utilice la propiedad bufferLength
.
Para reproducir una lista de reproducción en el lado del servidor, defina bufferTime
al menos en 1 segundo. Si experimenta problemas de reproducción, aumente la duración de bufferTime
.
Contenido grabado Para evitar la distorsión al reproducir contenido pregrabado (no dinámico), no defina el valor de Netstream.bufferTime
como 0. De forma predeterminada, la aplicación utiliza un búfer de entrada para el contenido pregrabado que pone en cola los datos del medio y los reproduce correctamente. Para contenido pregrabado, utilice la configuración predeterminada o aumente el tiempo de almacenamiento en búfer.
Contenido en vivo Cuando se emite contenido en vivo, defina la propiedad bufferTime
en 0.
A partir de Flash Player 9.0.115.0, Flash Player ya no borra el búfer cuando se llama a NetStream.pause()
. Antes del lanzamiento de Flash Player 9.0.115.0, Flash Player esperaba a que se llenase el búfer para reanudar la reproducción y esto provocaba desfase.
Para una pausa sencilla, la propiedad NetStream.bufferLength
tiene un límite de 60 segundos o el doble del valor de NetStream.bufferTime
(de los dos, el más alto). Por ejemplo, si el valor de bufferTime
es 20 segundos, Flash Player almacena en el búfer hasta que NetStream.bufferLength
alcanza el valor más alto entre 20*2 (40) o 60. En este caso almacena en el búfer hasta que bufferLength
es 60. Si el valor de bufferTime
es 40 segundos, Flash Player almacena en el búfer hasta que bufferLength
alcanza el valor más alto entre 40*2 (80) o 60. En este caso almacena en el búfer hasta que bufferLength
es 80 segundos.
La propiedad bufferLength
también tiene un límite absoluto. Si alguna llamada a pause()
hace que bufferLength
aumente más de 600 segundos o que bufferTime
alcance el valor * 2, Flash Player libera el búfer y reinicia bufferLength
en 0. Por ejemplo, si el valor de bufferTime
es 120 seconds, Flash Player libera el búfer cuando bufferLength
alcanza el valor de 600 segundos; si el valor de bufferTime
es 360 segundos, Flash Player libera el búfer cuando bufferLength
alcanza los 720 segundos.
Sugerencia: puede utilizar NetStream.pause()
en el código para almacenar datos en el búfer, por ejemplo, mientras el usuario ve un anuncio y detener la pausa cuando se inicie el vídeo principal.
Para obtener más información sobre el nuevo comportamiento de la pausa, consulte http://www.adobe.com/go/learn_fms_smartpause_es.
Flash Media Server. El comportamiento del búfer dependerá de si el tiempo del búfer se establece en una transmisión de publicación o en una de suscripción. En una transmisión de publicación, bufferTime
especifica cuánto tiempo puede crecer el búfer saliente antes de que la aplicación comience a eliminar fotogramas. En una conexión de alta velocidad, el tiempo del búfer no debe ser motivo de preocupación; los datos se enviarán casi con la misma rapidez con la que la aplicación los almacena en el búfer. En una conexión lenta, sin embargo, puede haber una diferencia importante entre la rapidez con que la aplicación almacena en el búfer los datos y la rapidez con que se envía al cliente.
En una transmisión de suscripción, bufferTime
especifica cuánto tiempo se pueden almacenar en búfer los datos entrantes antes de empezara a mostrar la transmisión.
Cuando se reproduce una transmisión grabada, si bufferTime
es 0, Flash lo establece con un valor bajo (aproximadamente 10 milisegundos). Si las transmisiónes en vivo se reproducen más tarde (por ejemplo, desde una lista de reproducción), este tiempo de búfer persiste. Es decir, bufferTime
sigue teniendo un valor distinto de cero para la transmisión.
Implementación
public function get bufferTime():Number
public function set bufferTime(value:Number):void
Elementos de API relacionados
bufferTimeMax | propiedad |
bufferTimeMax:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Especifica la duración máxima del búfer para contenido de transmisión en vivo, expresada en segundos. El valor predeterminado es 0. La duración del búfer puede aumentar con el tiempo debido a problemas de red y de dispositivos (como el desfase del reloj entre emisor y receptor). Establezca esta propiedad para recortar la duración del búfer para aplicaciones en vivo como reuniones y vigilancia.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Si bufferTimeMax > 0
y bufferLength >= bufferTimeMax
, el audio se reproduce más rápido hasta que bufferLength
alcanza a bufferTime
. Si la transmisión en vivo es sólo de vídeo, el vídeo se reproduce más rápido hasta que bufferLength
alcanza a bufferTime
.
Dependiendo de la cantidad que queda en reproducción (la diferencia entre bufferLength
y bufferTime
), Flash Player controla la velocidad de ajuste entre 1,5% y 6,25%. Si el flujo contiene audio, la reproducción más rápida se logra con las muestras del dominio de frecuencias, que reducen la distorsión audible.
Establezca la propiedad bufferTimeMax
para permitir la recuperación de transmisión en vivo del búfer en los siguientes casos:
- Transmisiones en vivo desde Flash Media Server.
- Transmisiones en vivo en modo de generación de datos (
NetStream.appendBytes()
).
Implementación
public function get bufferTimeMax():Number
public function set bufferTimeMax(value:Number):void
Elementos de API relacionados
bytesLoaded | propiedad |
bytesLoaded:uint
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
El número de bytes de datos que se han cargado en la aplicación. Puede utilizar esta propiedad con la propiedad bytesTotal
para estimar cuánto le falta al búfer para llenarse (por ejemplo, para mostrar información al usuario que está esperando a que los datos se carguen en el búfer).
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get bytesLoaded():uint
Elementos de API relacionados
bytesTotal | propiedad |
checkPolicyFile | propiedad |
checkPolicyFile:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Especifica si la aplicación debe intentar descargar un archivo de política entre distintos dominios desde el servidor del archivo de vídeo cargado antes de comenzar a cargarlo. Utilice esta propiedad para la descarga de vídeo progresivo y para cargar archivos que se encuentran fuera del propio dominio del archivo SWF que realiza la llamada. Esta propiedad se omite si se utiliza RTMP.
Establezca esta propiedad como true
para llamar a BitmapData.draw()
en un archivo de vídeo cargado desde un dominio externo al del archivo SWF que realiza la llamada. El método BitmapData.draw()
permite acceso al nivel de píxeles del vídeo. Si llama a BitmapData.draw()
sin establecer la propiedad checkPolicyFile
como true
en tiempo de carga, es posible que obtenga una excepción SecurityError
, ya que el archivo de política requerido no se ha descargado.
No establezca esta propiedad como true a menos que desee acceder al nivel de píxeles del vídeo que está cargando. Al buscar un archivo de política, se consume ancho de banda de la red y se puede demorar el inicio de la descarga.
Al llamar al método NetStream.play()
con checkPolicyFile
establecido como true
, Flash Player o el motor de ejecución de AIR debe descargar correctamente un archivo de política entre dominios adecuado o determinar que no existe ninguno antes de comenzar la descarga. Flash Player o el motor de ejecución de AIR lleva a cabo las acciones siguientes (en el orden indicado) para comprobar la existencia de un archivo de política:
- La aplicación tiene en cuenta los archivos de política ya descargados.
- La aplicación intenta descargar cualquier archivo de política especificado en las llamadas al método
Security.loadPolicyFile()
. - La aplicación intenta descargar un archivo de política desde la ubicación predeterminada correspondiente a la URL transferida a
NetStream.play()
, que es/crossdomain.xml
en el mismo servidor que la URL.
En todos los casos, Flash Player o Adobe AIR necesita que exista un archivo de política adecuado en el servidor de vídeo, que proporcione acceso al objeto en la URL transferida a play()
, de acuerdo con la ubicación del archivo de política, y que permita que el dominio acceda al archivo del código que realiza la llamada gracias a una o varias etiquetas <allow-access-from>
.
Si establece checkPolicyFile
como true
, la aplicación espera a que se verifique el archivo de política antes de descargar el vídeo. Espere a recibir los eventos onMetaData
o NetStatus
desde el objeto NetStream para realizar cualquier operación de nivel de píxeles en los datos de vídeo (por ejemplo, llamar a BitmapData.draw()
).
Si establece checkPolicyFile
como true
, pero no se encuentra ningún archivo de política adecuado, no recibirá ningún error hasta que no se realice alguna operación que requiera un archivo de política; cuando esto ocurra, la aplicación emitirá una excepción SecurityError.
Debe tener cuidado con checkPolicyFile
si descarga un archivo desde una URL que utilice redirección HTTP en el lado del servidor. La aplicación intenta recuperar archivos de política correspondientes a la URL inicial especificada en NetStream.play()
. Si el archivo final proviene de una URL distinta por la redirección HTTP, es posible que los archivos de política descargados inicialmente no se puedan aplicar a la URL final del archivo, que es la URL determinante en las decisiones de seguridad.
Para obtener más información sobre los archivos de política, consulte “Controles de sitio web (archivos de política)” en la Guía del desarrollador de ActionScript 3.0 y el tema del centro de desarrollo de Flash Player: Seguridad.
Implementación
public function get checkPolicyFile():Boolean
public function set checkPolicyFile(value:Boolean):void
Elementos de API relacionados
client | propiedad |
client:Object
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Especifica el objeto en el que se invocan los métodos callback para controlar los datos del flujo o del archivo FL4/FLV. El objeto predeterminado es this
(el objeto NetStream que se está creando). Si establece la propiedad client
en otro objeto, los métodos callback se invocan en dicho objeto. El objeto NetStream.client
puede llamar a las siguientes funciones y recibir un objeto de datos asociado: onCuePoint()
, onImageData()
, onMetaData()
, onPlayStatus()
, onSeekPoint()
, onTextData()
y onXMPData()
.
Para asociar la propiedad client
a un controlador de eventos:
- Cree un objeto y asígnelo a la propiedad
client
del objeto NetStream:var customClient:Object = new Object(); my_netstream.client = customClient;
- Asigne una función controladora para el evento de datos que desee como propiedad del objeto client:
customClient.onImageData = onImageDataHandler;
- Escriba la función controladora para recibir el objeto de evento de datos, como:
public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); }
Cuando se transfieren datos mediante flujo o durante la reproducción, el objeto de evento de datos (en este caso, el objeto imageData
) se llena con los datos. Consulte la descripción de onImageData
, que incluye un ejemplo completo de un objeto asignado a la propiedad client
.
Para asociar la propiedad client
a una subclase:
- Cree una subclase con una función controladora para recibir el objeto de evento de datos:
class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " framerate=" + info.framerate); }
- Asigne una instancia de la subclase a la propiedad
client
del objeto NetStream:my_netstream.client = new CustomClient();
Cuando se transfieren datos mediante flujo o durante la reproducción, el objeto de evento de datos (en este caso, el objeto info
) se llena con los datos. Consulte el ejemplo de clase al final de la clase NetStream, donde se muestra la asignación de una instancia de subclase a la propiedad client
.
Implementación
public function get client():Object
public function set client(value:Object):void
Emite
TypeError — La propiedad client debe establecerse en un objeto que no tenga valor null.
|
Elementos de API relacionados
currentFPS | propiedad |
currentFPS:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
El número de fotogramas por segundo que se muestran. Si está exportando archivos de vídeo que van a reproducirse en diversos sistemas, puede comprobar este valor durante la realización de pruebas para que le resulte más fácil determinar la cantidad de compresión que debe aplicarse al exportar el archivo.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get currentFPS():Number
dataReliable | propiedad |
dataReliable:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica si las llamadas a NetStream.send()
se envían con total fiabilidad. Si es TRUE, las llamadas a NetStream.send()
que se transmiten a través de este objeto NetStream son totalmente fiables. Si es FALSE, las llamadas a NetStream.send()
no se transmiten con total fiabilidad: se retransmiten durante un tiempo limitado y después se eliminan. Puede establecer este valor en FALSE para reducir la latencia a costa de la calidad de los datos.
Si intenta establecer esta propiedad en FLASE en un protocolo de red que no admita fiabilidad parcial, se omitirá el intento y la propiedad se establecerá en TRUE.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get dataReliable():Boolean
public function set dataReliable(value:Boolean):void
Elementos de API relacionados
farID | propiedad |
farID:String
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Para conexiones RTMFP, el dentificador del extremo que está conectado con esta instancia de NetStream.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get farID():String
farNonce | propiedad |
farNonce:String
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
En conexiones RTMFP RTMPE, un valor elegido en gran parte por el otro extremo del flujo; exclusivo de esta conexión. Este valor aparece en el otro extremo del flujo como su valor nearNonce
.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get farNonce():String
inBufferSeek | propiedad |
inBufferSeek:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Especifica si se almacenan en caché datos mostrados en búsqueda inteligente (TRUE
) o no (FALSE
). El valor predeterminado es FALSE.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Flash Media Server 3.5.3 y Flash Player 10.1 trabajan juntos para admitir búsqueda inteligente. La búsqueda inteligente utiliza búferes de avance y de retroceso para realizar búsquedas sin solicitar datos del servidor. La búsqueda estándar libera datos almacenados en el búfer y pide al servidor que envíe nuevos datos según el tiempo de búsqueda.
Llame a NetStream.paso()
para avanzar o retroceder un número especificado de fotogramas. Llame a NetStream.seek()
para avanzar o retroceder un número especificado de segundos.
La búsqueda inteligente reduce la carga del servidor y mejora el rendimiento la búsqueda. Defina inBufferSeek=true
y llame a step()
y a seek()
para crear:
- Funcionalidad DVR del lado del cliente. Búsqueda dentro del búfer del lado del cliente en lugar de ir al servidor para la entrega de nuevo vídeo.
- Modos de truco. Cree reproductores que pasen por fotogramas, avance, retroceso y avance a cámara lenta.
Cuando inBufferSeek=true
y se realiza correctamente una llamada a NetStream.seek()
, la propiedad info.description
de NetStatusEvent contiene la cadena "client-inBufferSeek"
.
Cuando se realiza correctamente una llamada a NetStream.step()
se realiza correctamente, la propiedad info.code
de NetStatusEvent contiene la cadena "NetStream.Step.Notify"
.
Implementación
public function get inBufferSeek():Boolean
public function set inBufferSeek(value:Boolean):void
Elementos de API relacionados
info | propiedad |
info:NetStreamInfo
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Devuelve un objeto NetStreamInfo cuyas propiedades contienen estadísticas sobre la calidad del servicio. El objeto es una instantánea del estado actual.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get info():NetStreamInfo
Elementos de API relacionados
liveDelay | propiedad |
liveDelay:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
El número de segundos de datos del búfer de la transmisión de suscripción en modo en vivo (sin búfer). Esta propiedad especifica la demora de transmisión de la red actual (tiempo de retardo).
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Esta propiedad se utiliza principalmente con un servidor como Flash Media Server; para más información, consulte la descripción de la clase.
Puede obtener el valor de esta propiedad para calibrar de forma aproximada la calidad de la transmisión y comunicarse con el usuario.
Implementación
public function get liveDelay():Number
maxPauseBufferTime | propiedad |
maxPauseBufferTime:Number
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Indica el tiempo que se guardan en el búfer los mensajes en modo de pausa, en segundos. Esta propiedad se puede utilizar para limitar el búfer durante el modo de pausa. Cuando el valor de NetStream.bufferLength
alcance este límite, se detendrá el búfer.
Si el valor no se establece, se ajusta de forma predeterminada el límite en 60 segundos, o en el doble del valor de NetStream.bufferTime
en cada paso (el valor que sea más grande).
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get maxPauseBufferTime():Number
public function set maxPauseBufferTime(value:Number):void
Elementos de API relacionados
multicastAvailabilitySendToAll | propiedad |
multicastAvailabilitySendToAll:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica si los mensajes de disponibilidad de fragmentos de multidifusión P2P se envían a todos los pares o a sólo a uno. Un valor TRUE especifica que los mensajes se envían a todos los pares una vez en cada intervalo especificado. Un valor FALSE especifica que los mensajes se envían sólo a un par una vez en cada intervalo especificado. El intervalo se determina mediante la propiedad multicastAvailabilityUpdatePeriod
.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get multicastAvailabilitySendToAll():Boolean
public function set multicastAvailabilitySendToAll(value:Boolean):void
Elementos de API relacionados
multicastAvailabilityUpdatePeriod | propiedad |
multicastAvailabilityUpdatePeriod:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica el intervalo en segundos entre los mensajes enviados a los pares informándoles de que el nodo local tiene nuevos fragmentos multimedia de multidifusión P2P disponibles. Los valores más grandes pueden aumentar la eficiencia de creación de lotes y reducir la sobrecarga de control, pero pueden reducir la calidad en el extremo receptor al disminuir la cantidad de tiempo disponible para recuperar fragmentos antes de que salgan de la ventana. Los valores más pequeños puede reducir la latencia y mejorar la calidad, pero aumentan el control de sobrecarga.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get multicastAvailabilityUpdatePeriod():Number
public function set multicastAvailabilityUpdatePeriod(value:Number):void
Elementos de API relacionados
multicastFetchPeriod | propiedad |
multicastFetchPeriod:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica el tiempo en segundos entre el momento en que el nodo local detecta que hay disponible un fragmento multimedia de multidifusión P2P y cuando intenta obtenerlo desde un par. Este valor proporciona la oportunidad al fragmento de enviarse proactivamente al nodo local antes de que se intente obtener de un par. También permite que más de un par anuncie la disponibilidad del fragmento, por lo que la carga de obtención se puede repartir entre varios pares.
Los valore más grandes pueden merjorar el equilibrio de cargas y la equidad en la malla P2P, pero reducen el valor de multicastWindowDuration
disponible y aumentan la latencia. Los valores más pequeños pueden reducir la latencia en la obtención, pero pueden aumentar la recepción de datos dubplicados y reducir el equilibrio de cargas en la malla P2P.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get multicastFetchPeriod():Number
public function set multicastFetchPeriod(value:Number):void
Elementos de API relacionados
multicastInfo | propiedad |
multicastInfo:NetStreamMulticastInfo
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, devuelve un objeto NetStreamMulticastInfo cuyas propiedades contienen estadísticas sobre la calidad del servicio. El objeto es una instantánea del estado actual.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get multicastInfo():NetStreamMulticastInfo
Elementos de API relacionados
multicastPushNeighborLimit | propiedad |
multicastPushNeighborLimit:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica el número máximo de pares a los que se pueden enviar datos multimedia de multidifusión de forma proactiva.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get multicastPushNeighborLimit():Number
public function set multicastPushNeighborLimit(value:Number):void
multicastRelayMarginDuration | propiedad |
multicastRelayMarginDuration:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica el tiempo en segundos que los datos de multidifusión P2P siguen disponibles para enviarse a los pares que los soliciten una vez transcurrida la duración especificada. La duración se especifica con la propiedad multicastWindowDuration
.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get multicastRelayMarginDuration():Number
public function set multicastRelayMarginDuration(value:Number):void
Elementos de API relacionados
multicastWindowDuration | propiedad |
multicastWindowDuration:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica la duración en segundos de la ventana de reensamblaje de multidifusión P2P. Los valores más cortos recuden la latencia pero pueden reducir la calidad si no permite tiempo suficiente para obtener todos los fragmentos. Por el contrario, los valores más largos pueden aumentar la calidad al proporcionar más tiempo para obtener todos los fragmentos, con el correspondiente aumento de latencia.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get multicastWindowDuration():Number
public function set multicastWindowDuration(value:Number):void
Elementos de API relacionados
nearNonce | propiedad |
nearNonce:String
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
En conexiones RTMFP y RTMPE, un valor elegido en gran parte por el otro extremo del flujo; exclusivo de esta conexión. Este valor aparece en el otro extremo del flujo como su valor farNonce
.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get nearNonce():String
objectEncoding | propiedad |
objectEncoding:uint
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
La codificación del objeto (versión del AMF) para este objeto NetStream. El objeto NetStream hereda su valor objectEncoding
del objeto NetConnection asociado. Es importante comprender esta propiedad si el archivo SWF de ActionScript 3.0 necesita comunicarse con los servidores publicados antes de la aparición de Flash Player 9. Para más información, consulte la descripción de la propiedad objectEncoding
en la clase NetConnection.
El valor de esta propiedad varía si la transmisión es local o remota. Las transmisiones locales, donde se transfiere null
al método NetConnection.connect()
, devuelven el valor de NetConnection.defaultObjectEncoding
. Por su parte, las transmisiones remotas, donde se realiza la conexión con el servidor, devuelven la codificación del objeto de conexión con el servidor.
Si intenta leer esta propiedad cuando no está conectado, o si intenta cambiarla, la aplicación emite una excepción.
Implementación
public function get objectEncoding():uint
Elementos de API relacionados
peerStreams | propiedad |
peerStreams:Array
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Objeto que alberga todas las instancias suscritas de NetStream que están detectando esta instancia de publicación de NetStream.
Implementación
public function get peerStreams():Array
soundTransform | propiedad |
soundTransform:flash.media:SoundTransform
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Controla el sonido de este objeto NetStream. Para más información, consulte la clase SoundTransform.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Elementos de API relacionados
time | propiedad |
time:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
La posición, en segundos, de la cabeza lectora.
Flash Media Server Para una transmisión de suscripción, el número de segundos que ha estado reproduciéndose la transmisión. Para una transmisión de publicación, el número de segundos que ha estado publicándose la transmisión. Este número es exacto con la posición decimal en milésimas; multiplíquelo por 1000 para obtener el número de milisegundos que ha estado reproduciéndose la transmisión.
Para un flujo de suscripción, si el servidor detiene el envío de datos pero la transmisión queda abierta, el valor de la propiedad time
deja de avanzar. Cuando el servidor comienza a enviar datos de nuevo, el valor sigue avanzado desde el punto en el que se detuvo (cuando el servidor dejó de enviar datos).
El valor de time
continúa avanzando cuando el flujo cambia de un elemento a otro en la lista de reproducción. Esta propiedad se establece en 0 cuando se llama a NetStream.play()
con el valor reset
establecido en 1
o en true
, o bien cuando se llama a NetStream.close()
.
Implementación
public function get time():Number
Elementos de API relacionados
useHardwareDecoder | propiedad |
useHardwareDecoder:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 11, AIR 3 |
Especifica si se utiliza descodificación con aceleración por hardware en la transmisión.
Nota: no se puede establecer esta propiedad durante la reproducción de vídeo. Se debe establecer antes de llamar a NetStream.play()
.
El valor predeterminado es true.
Implementación
public function get useHardwareDecoder():Boolean
public function set useHardwareDecoder(value:Boolean):void
Elementos de API relacionados
useJitterBuffer | propiedad |
useJitterBuffer:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 11.3, AIR 3.3 |
Minimiza la latencia en una transmisión en vivo sin búfer (bufferTime = 0). En lugar de un mecanismo de captura conservador basado en push, los mensajes de audio se colocan en un búfer adaptable. Cuando el dispositivo de altavoz necesita audio, los mensajes emergen desde el búfer, adaptable, se descodifican y se reproducen. Speex y G.711 siempre utilizan este enfoque, independientemente de la configuración (useJitterBuffer devuelve true para Speex/G.711). Cuando se activa el nuevo modo sin búfer, todos los códecs utilizan búfer adaptable, como por ejemplo, Speex, G.711, Nellymoser, MP3 y AAC. Esta propiedad no tiene ningún efecto en el modo de búfer (bufferTime > 0), y, por lo tanto, useJitterBuffer devuelve false.
Implementación
public function get useJitterBuffer():Boolean
public function set useJitterBuffer(value:Boolean):void
videoReliable | propiedad |
videoReliable:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Para conexiones RTMFP, especifica si el vídeo se envía con total fiabilidad. Si e sTRUE, todo el vídeo transmitido por NetStream es completamente fiable. Si es FALSE, el vídeo transmitido es no es totalmente fiable, sino que se retransmite durante un tiempo limitado y después se elimina. Puede utilizar el valor FALSE false para reducir la latencia a costa de calidad de vídeo.
Si intenta establecer esta propiedad en FLASE en un protocolo de red que no admita fiabilidad parcial, se omitirá el intento y la propiedad se establecerá en TRUE.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get videoReliable():Boolean
public function set videoReliable(value:Boolean):void
Elementos de API relacionados
videoSampleAccess | propiedad |
videoSampleAccess:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
En conexiones RTMFP, especifica si se permite capturar el flujo de vídeo entre pares suscritos a este objeto NetStream. Si es FALSE, el suscriptor intenta capturar el flujo de vídeo para mostrar errores de permisos.
Nota: esta propiedad no se admite en vídeo H.264 en AIR 3.0 for iOS.
Implementación
public function get videoSampleAccess():Boolean
public function set videoSampleAccess(value:Boolean):void
Elementos de API relacionados
videoStreamSettings | propiedad |
videoStreamSettings:VideoStreamSettings
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 11/ConnectAddin, AIR 3 |
Especifica las propiedades de compresión de la transmisión. Para obtener más información, consulte VideoStreamSettings
. Si no hay una cámara conectada al sistema, se devolverá null.
Implementación
public function get videoStreamSettings():VideoStreamSettings
public function set videoStreamSettings(value:VideoStreamSettings):void
Elementos de API relacionados
NetStream | () | Información sobre |
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crea una transmisión que puede utilizar para reproducir archivos de medios y enviar datos a través de un objeto NetConnection.
No se considera válido para gestionar un evento netStatus
de un objeto NetStream. Para evitar errores, debe registrar un detector para netStatus
después de crear el objeto NetStream y antes de llamar a su método play()
.
connection:NetConnection — Un objeto NetConnection.
| |
peerID:String (default = "connectToFMS ") — Este parámetro opcional está disponible en Flash Player 10 y versiones posteriores para su uso con conexiones RTMFP. (Si el valor de la propiedad NetConnection.protocol no es "rtmfp" , este parámetro se omite.) Utilice uno de los valores siguientes:
En la mayoría de los casos, Si se incluye este parámetro en el constructor la sentencia transferirá un valor |
Emite
ArgumentError — La instancia de NetConnection no está conectada.
|
Elementos de API relacionados
DIRECT_CONNECTIONS
farID
flash.media.Video.attachCamera()
flash.net.GroupSpecifier
flash.net.GroupSpecifier.groupspecWithAuthorizations()
flash.net.GroupSpecifier.groupspecWithoutAuthorizations()
flash.net.GroupSpecifier.multicastEnabled
flash.net.NetConnection
flash.net.NetConnection.nearID
flash.net.NetConnection.protocol
flash.net.NetGroup
flash.events.NetStatusEvent.info.code="NetStream.Connect.Rejected"
flash.events.NetStatusEvent.info.code="NetStream.Connect.Success"
Ejemplo ( Cómo utilizar este ejemplo )
videoURL
:
var my_video:Video = new Video(); addChild(my_video); var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_video.attachNetStream(my_ns); my_ns.play(videoURL);
videoURL
) en una instancia remota de Flash Media Server especificada en el comando connect()
:
var my_video:Video = new Video(); addChild(my_video); 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_video.attachNetStream(my_ns); my_ns.play(videoURL);
appendBytes | () | método |
public function appendBytes(bytes:ByteArray):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Transfiere una instancia de ByteArray en un objeto NetStream para su reproducción. Llame a este método en un objeto NetStream en el “Modo de generación de datos”. Para colocar un objeto NetStream en modo de generación de datos, llame a NetStream.play(null)
en un objeto NetStream creado en una conexión NetConnection conectada a null
. Llamar al método appendBytes()
en un objeto NetStream que no está en modo de generación de datos produce un error y emite una excepción.
Nota: este método no se admite en vídeo H.264 en AIR 3.0 for iOS.
El analizador de bytes entiende un archivo FLV con encabezado. Una vez analizado el encabezado, appendBytes()
espera que todas las llamadas siguientes sean continuación del mismo archivo real o virtual. No se espera otro encabezado a no ser que se llame a appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
.
Un objeto NetStream tiene dos búfer: el FIFO de appendBytes()
a NetStream, y el búfer de reproducción. El FIFO es el búfer de reensamblaje de etiquetas parciales FLV y no contiene más de una etiqueta incompleta FLV. Las llamadas a NetStream.seek()
vacían ambos búfer. Tras llamar a seek()
, llame a appendBytesAction()
para restablecer la escala de tiempo y comenzar en la marca de hora del siguiente mensaje añadido.
Cada llamada a appendBytes()
añade bytes al FIFO hasta que se completa una etiqueta FLV. Cuando se completa una etiqueta FLV, se desplaza al búfer de reproducción. Una llamada a appendBytes()
puede escribir varias etiquetas FLV. Los primeros bytes completan una etiqueta FLV existente (que se desplaza al búfer de reproducción). Las etiquetas FLV completas se desplazan al búfer de reproducción. Los bytes restantes que no forman una etiqueta FLV completa van al FIFO. Los bytes del FIFO se completan con una llamada a appendBytes()
o se vacían con una llamada a appendBytesAction()
con el argumento RESET_SEEK
o RESET_BEGIN
.
Nota: el analizador de bytes tal vez que no pueda descodificar totalmente una llamada a appendBytes()
hasta que se producen las siguientes llamadas a appendBytes()
.
Parámetros
bytes:ByteArray |
Elementos de API relacionados
appendBytesAction | () | método |
public function appendBytesAction(netStreamAppendBytesAction:String):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Indica una discontinuidad temporal, vacía el FIFO, e informa analizador de bytes que debe esperar un encabezado de archivo o el comienzo de una etiqueta FLV.
Nota: este método no se admite en vídeo H.264 en AIR 3.0 for iOS.
Las llamadas a NetStream.seek()
vacían los búfer de NetStream. El analizador de bytes permanece en modo de vaciado hasta que se llama a appendBytesAction()
y se transfiere el argumento RESET_BEGIN
o RESET_SEEK
. Capture el evento "NetStream.seek.notify"
para llamar a appendBytesAction()
tras una búsqueda. Un nuevo encabezado de archivo puede admitir listas de reproducción o búsqueda sin llamar a NetStream.seek()
.
También puede llamar a este método para restablecer el contador de bytes de la función callback onSeekPoint()
).
Parámetros
netStreamAppendBytesAction:String |
Elementos de API relacionados
attach | () | método |
public function attach(connection:NetConnection):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Asocia un flujo a un nuevo objeto NetConnection. Llamar a este método para conectar un objeto NetStream con un nuevo objeto NetConnection después de una conexión fallida y reconectada. Flash Player y AIR reanudan la transmisión a partir del punto de reproducción en que se perdió la conexión. También puede utilizar este método para implementar el reparto de cargas.
Este método requiere Flash Media Server versión 3.5.3 o posterior.
Para utilizar este método para la implementación de la reconexión de la transmisión, consulte la Documentación de Flash Media Server 3.5.3.
Para utilizar este método en la implementación del reparto de cargas, lleve a cabo las acciones siguientes:
- Asocie un flujo conectado a un objeto NetConnection en otro servidor.
- Cuando logre asociar el flujo a la nueva conexión, llame al método
NetConnection.close()
de la conexión anterior para evitar pérdidas de datos. - Llame al método
NetStream.play2().
y establezca el deNetStreamPlayOptions.transition
en RESUME. Defina el resto de las propiedades de NetStreamPlayOptions en los mismos valores que utilizó al llamar originalmente aNetStream.play()
o aNetStream.play2()
para iniciar el flujo.
Parámetros
connection:NetConnection |
Elementos de API relacionados
attachAudio | () | método |
public function attachAudio(microphone:Microphone):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Asocia una transmisión de audio enviada a un objeto NetStream desde un objeto Microphone transferido como origen. Este método sólo está disponible para el editor de la transmisión especificada.
Utilice este método con Flash Media Server para enviar audio en vivo al servidor. Llame a este método antes o después de llamar al método publish()
.
Defina la propiedad Microphone.rate
para que coincida con la velocidad del dispositivo de captura de sonido. Llame a setSilenceLevel()
para definir el umbral de nivel de silencio. Para controlar las propiedades de sonido (volumen y desplazamiento lateral) de la transmisión de audio, utilice la propiedadMicrophone.soundTransform
.
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://server.domain.com/app"); var ns:NetStream = new NetStream(nc); 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; ns.attachAudio(live_mic); ns.publish("mic_stream","live")
Para escuchar el audio, llame al método NetStream.play()
y a DisplayObjectContainer.addChild()
para dirigir el audio a un objeto de la lista de visualización.
Parámetros
microphone:Microphone — El origen del flujo de audio.
|
Elementos de API relacionados
attachCamera | () | método |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Comienza a capturar vídeo desde una cámara, o bien detiene la captura si theCamera
se establece como null
. Este método sólo está disponible para el editor de la transmisión especificada.
Este evento está pensado para su uso con Flash Media Server; para más información, consulte la descripción de la clase.
Tras vincular el origen de vídeo, es necesario llamar a NetStream.publish()
para iniciar la transmisión. Los suscriptores que deseen mostrar el vídeo deben llamar a los métodos NetStream.play()
y Video.attachCamera()
para poder mostrarlo en el escenario.
Es posible utilizar snapshotMilliseconds
para enviar una única instantánea (si se proporciona un valor 0) o una serie de instantáneas (en realidad, imágenes a intervalos) si se proporciona un número positivo que añada el número especificado de milisegundos a la salida de vídeo. Este añadido amplía el tiempo de visualización del mensaje de vídeo. Si se llama varias veces a attachCamera()
con un valor positivo de snapshotMilliseconds
, la secuencia de instantáneas y añadidos alternativos crea imágenes a intervalos. Por ejemplo, se puede capturar un fotograma por día y añadirlo a un archivo de vídeo. Cuando un suscriptor reproduce el archivo, cada fotograma permanece en pantalla durante el número especificado de milisegundos y, a continuación, se muestra el siguiente fotograma.
La finalidad del parámetro snapshotMilliseconds
no es la misma que la del parámetro fps
que se puede establecer con Camera.setMode()
. Al especificar snapshotMilliseconds
, se controla la cantidad de tiempo que transcurre entre los fotogramas grabados. Al especificar fps
con Camera.setMode()
, se controla la cantidad de tiempo que transcurre durante la grabación y la reproducción.
Por ejemplo, suponga que quiere tomar una instantánea cada 5 minutos hasta conseguir un total de 100 instantáneas. Puede hacerse de dos maneras:
- Se puede emitir un comando
NetStream.attachCamera(myCamera, 500)
100 veces, una cada 5 minutos. Tardaría 500 minutos en realizar la grabación, pero el archivo resultante se reproduciría en 50 segundos (100 fotogramas con 500 milisegundos entre cada fotograma). - Se puede emitir un comando
Camera.setMode()
con un valor defps
de 1/300 (uno por cada 300 segundos, o uno cada 5 minutos) y, a continuación, emitir un comandoNetStream.attachCamera(source)
, para que la cámara pueda capturar de forma continua durante 500 minutos. El archivo resultante se reproducirá en 500 minutos (el mismo tiempo que se tardó en grabar) y cada fotograma se muestra durante 5 minutos.
Mediante ambas técnicas, se capturan los mismos 500 fotogramas y los dos enfoques resultan útiles; el enfoque adecuado depende principalmente de los requisitos de reproducción. Por ejemplo, en el segundo caso, se grabaría audio todo el tiempo. Asimismo, los dos archivos tendrían aproximadamente el mismo tamaño.
Parámetros
theCamera:Camera — El origen de la transmisión de vídeo. Los valores válidos son un objeto Camera (que comienza a capturar vídeo) y null . Si transfiere null , la aplicación detiene la captura de vídeo y se omiten todos los parámetros adicionales que envíe.
| |
snapshotMilliseconds:int (default = -1 ) — Especifica si la transmisión de vídeo es continuo, un único fotograma o una serie de fotogramas únicos empleados para crear fotografías a intervalos.
|
close | () | método |
public function close():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Detiene la reproducción de todos los datos de la transmisión, establece la propiedad time
con el valor 0 y deja la transmisión a disposición de otro usuario. Este método también elimina la copia local de un archivo de vídeo descargado a través de HTTP. Aunque la aplicación elimina la copia local del archivo que crea, es posible que permanezca una copia en el directorio de la caché. Si debe impedir totalmente el almacenamiento local o en caché del archivo de vídeo, utilice Flash Media Server.
Al utilizar Flash Media Server, este método se invoca implícitamente al llamar a NetStream.play()
desde un flujo de publicación o NetStream.publish()
desde un flujo de suscripción. Tenga en cuenta que:
-
Si se realiza la llamada a
close()
desde una transmisión de publicación, la transmisión deja de publicar y el editor puede ahora utilizar la transmisión para otro propósito. Los suscriptores ya no reciben lo que se estaba publicando en la transmisión, ya que ésta ha dejado de publicar. -
Si se realiza la llamada a
close()
desde una transmisión de suscripción, la transmisión deja de efectuarse para el suscriptor y éste puede utilizar la transmisión para otro propósito. Los demás suscriptores no se verán afectados. -
Para detener la reproducción de una transmisión de suscripción sin cerrar la transmisión ni cambiarle el tipo, utilice
flash.net.NetStream.play(false)
.
Elementos de API relacionados
dispose | () | método |
public function dispose():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 11, AIR 3.0 |
Libera todos los recursos almacenados en el objeto NetStream.
El método dispose()
es similar al método close
. La principal diferencia entre los dos métodos es que dispose()
libera la memoria utilizada para mostrar el fotograma de vídeo actual. Si dicho marco actualmente se muestra en la pantalla, la pantalla se quedará en blanco. El método close()
no deja la pantalla en blanco porque no libera memoria.
onPeerConnect | () | método |
public function onPeerConnect(subscriber:NetStream):Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Se invoca cuando un flujo de publicación homólogo coincide con uno de suscripción. Antes de que el suscriptor se conecte al editor, llame a este método para que el código ActionScript pueda controlar la publicación de igual a igual. El siguiente código muestra un ejemplo de cómo crear una función de callback para este método:
var c:Object = new Object; c.onPeerConnect = function(subscriber:NetStream):Boolean { if (accept) return true; else return false; }; m_netStream.client = c;
Si un editor homólogo no implementa este método, todos los homólogos podrán reproducir cualquier contenido publicado.
Parámetros
subscriber:NetStream |
Boolean |
pause | () | método |
public function pause():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Interrumpe la reproducción de un flujo de vídeo. Si el vídeo ya está interrumpido, la llamada a este método no tendrá ningún efecto. Para reanudar la reproducción de un vídeo que está en pausa, llame a resume()
. Para alternar entre pausa y reproducción (primero detener el vídeo, luego reanudarlo), llame a togglePause()
.
A partir de Flash Player 9.0.115.0, Flash Player ya no borra el búfer cuando se llama a NetStream.pause()
. Este comportamiento se denomina “pausa inteligente”. Antes del lanzamiento de Flash Player 9.0.115.0, Flash Player esperaba a que se llenase el búfer para reanudar la reproducción y esto provocaba desfase.
Nota: para conseguir compatibilidad con versiones anteriores, el evento"NetStream.Buffer.Flush"
(consulte la propiedad NetStatusEvent.info
) aún se activa, aunque el servidor no vaciar el búfer.
Para una pausa sencilla, la propiedad NetStream.bufferLength
tiene un límite de 60 segundos o el doble del valor de NetStream.bufferTime
(de los dos, el más alto). Por ejemplo, si el valor de bufferTime
es 20 segundos, Flash Player almacena en el búfer hasta que NetStream.bufferLength
alcanza el valor más alto entre 20*2 (40) o 60, por lo que en este caso almacena en el búfer hasta que bufferLength
es 60. Si el valor de bufferTime
es 40 segundos, Flash Player almacena en el búfer hasta que bufferLength
alcanza el valor más alto entre 40*2 (80) o 60, por lo que en este caso almacena en el búfer hasta que bufferLength
es 80 segundos.
La propiedad bufferLength
también tiene un límite absoluto. Si alguna llamada a pause()
hace que bufferLength
aumente más de 600 segundos o que bufferTime
alcance el valor * 2, Flash Player libera el búfer y reinicia bufferLength
en 0. Por ejemplo, si el valor de bufferTime
es 120 seconds, Flash Player libera el búfer cuando bufferLength
alcanza el valor de 600 segundos; si el valor de bufferTime
es 360 segundos, Flash Player libera el búfer cuando bufferLength
alcanza los 720 segundos.
Sugerencia: puede utilizar NetStream.pause()
en el código para almacenar datos en el búfer, por ejemplo, mientras el usuario ve un anuncio y detener la pausa cuando se inicie el vídeo principal.
Elementos de API relacionados
play | () | método |
public function play(... arguments):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Reproduce un archivo de medios de un directorio local o un servidor web; se reproduce un archivo de medios o una transmisión en vivo desde Flash Media Server. Distribuye un objeto NetStatusEvent
a los mensajes de error y de estado de informe.
Para obtener información sobre los códecs y formatos de archivo admitidos, consulte lo siguiente:
- Documentación de Flash Media Server
- Compatibilidad de Flash Player con vídeo de alta definición H.264 y audio AAC
- Documentos de la especificación FLV/F4V
Flujo de trabajo para reproducir un archivo o transmisión en vivo
- Cree un objeto Video que muestre el vídeo y llame al método
addChild()
para añadirlo al escenario. Cree un objeto NetConnection y llame a
NetConnection.connect()
.Para reproducir un archivo desde un directorio local o un servidor web, transfiera el valor null.
Para reproducir un archivo grabado o transmisión en vivo desde Flash Media Server, transfiera el URI de una aplicación de Flash Media Server.
- Llame al método
addEventListener()
del objeto NetConnection para detectar el eventonetStatus
(NetStatusEvent.NET_STATUS
). - En
"NetConnection.Connect.Success"
, cree un objeto NetStream y transfiera el objeto NetConnection al constructor. - Llame al método
attachNetStream()
del objeto Video y transfiera el objeto NetStream. Llame al método
play()
del objeto NetStream.Para reproducir una transmisión en vivo, transfiera el nombre de flujo pasado al método
NetStream.publish()
.Para reproducir un archivo grabado, transfiera el nombre de archivo.
Nota: la práctica recomendada es siempre añadir el objeto Video al escenario, asociarle el objeto NetStream y, por último, llamar al método play()
del objeto NetStream.
Activar modo de generación de datos
Llame a play(null)
para activar el “Modo de generación de datos”. En este modo, llame al método appendBytes()
para entregar datos al objeto NetStream. Utilice el modo de generación de datos para transmitir modo contenido a través de HTTP desde el módulo de origen de flujo dinámico HTTP de Adobe en un servidor HTTP de Apache. El flujo dinámico HTTP permite a los clientes buscar rápidamente en cualquier punto de un archivo. El marco OSMF (Open Source Media Framework) admite flujo dinámico HTTP sobre vod y flujos dinámicos. Para ver ejemplos sobre el uso del modo de generación de datos NetStream, descargue el OSMF de origen. Para obtener más información sobre el flujo dinámico HTTP, consulte HTTP Dynamic Streaming (Flujo dinámico HTTP, en inglés).
Si se utiliza este método sin Flash Media Server, deben tenerse en cuenta ciertas consideraciones de seguridad. Un archivo del entorno limitado local de confianza o local con acceso a la red puede cargar y reproducir un archivo de vídeo desde el entorno limitado remoto, pero no puede acceder a los datos del archivo remoto sin obtener permiso explícito en forma de archivo de política URL. Asimismo, se puede impedir que un archivo SWF ejecutado en Flash Player utilice este método si define el parámetro allowNetworking
de las etiquetas object
y embed
de la página HTML que aloja el contenido SWF. Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.
Parámetros
... arguments — Reproducir un archivo local
La ubicación de un archivo de medios. El argumento puede ser una cadena, una propiedad Reproducir un archivo de Flash Media Server
Es posible reproducir los formatos de archivo descritos en la siguiente tabla. La sintaxis varía según el formato de archivo.
Activar modo de generación de datos
Para activar el “modo de generación de datos”, transfiera el valor Consideraciones especiales para vídeo H.264 en AIR 3.0 for iOS En vídeo H.264, las API de iOS para la reproducción de vídeo sólo aceptan una URL en un archivo o flujo. No se puede transferir en un búfer de datos de vídeo H.264 para descodificar. En función del origen de vídeo, hay que transferir el argumento adecuado a
|
Eventos
status: — Se distribuye al intentar reproducir contenido cifrado con administración de derechos digitales (DRM). El valor de la propiedad code es "DRM.encryptedFLV" .
|
Emite
SecurityError — Los archivos SWF locales que no son de confianza no pueden comunicarse con Internet. Puede solucionar esta restricción reclasificando el archivo SWF como archivo local de red o archivo de confianza.
| |
ArgumentError — Al menos debe especificarse un parámetro.
| |
Error — El objeto NetStream no es válido. Esto puede deberse a un fallo de NetConnection.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
play()
debe especificar una extensión de nombre de archivo.
ns.play("mp4:samples/record1.f4v", 0, 100, true);
ns.play("livestream");
var MyVideo:Video = new Video(); addChild(MyVideo); var MyNC:NetConnection = new NetConnection(); MyNC.connect(null); var MyNS:NetStream = new NetStream(MyNC); MyVideo.attachNetStream(MyNS); MyNS.play("http://www.helpexamples.com/flash/video/clouds.flv"); //the clouds.flv video has metadata we're not using, so create //an error handler to ignore the message generated by the runtime //about the metadata MyNS.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); function asyncErrorHandler(event:AsyncErrorEvent):void { //ignore metadata error message }
play2 | () | método |
public function play2(param:NetStreamPlayOptions):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Alterna perfectamente entre archivos con varias velocidades de bits y permite la reanudación de NetStream si la conexión falla y se reconecta.
Este método es una versión mejorada de NetStream.play()
. Al igual que sucede con el método play()
, el método play2()
inicia la reproducción de un archivo de medios o pone en cola los archivos de medios para crear una lista de reproducción. Cuando se utiliza con Flash Media Server, también puede solicitar al servidor que cambie a un archivo de medios diferente. La transición se produce sin problemas en la aplicación cliente. Las siguientes funciones utilizan el cambio de flujos play2()
:
Transmisión de flujo dinámica
El flujo dinámico (compatible con Flash Media Server 3.5 y posterior) permite servir un flujo codificado a varias velocidades de bits. Como el estado de la red del visitante cambia, se recibe la velocidad que proporcione la mejor experiencia de visualización. Utilice la clase NetStreamInfo
para supervisar las condiciones de la red y cambiar los flujos según los datos. También puede alternar flujos de clientes con distintas capacidades. Para obtener más información, consulte “Flujo dinámico” en la “Guía del desarrollador de Adobe Flash Media Server”.
Adobe ha creado una clase de ActionScript denominada DynamicStream que amplía la clase NetStream. Puede utilizar la clase DynamicStream para implementar flujos dinámicos en una aplicación en lugar de escribir su propio código para detectar las condiciones de la red. Incluso si decide escribir su propio código de flujo dinámico, consulte la clase DynamicStream para ver una implementación de referencia. Puede descargar la clase y la documentación de la clase en la página de descargas y herramientas de Flash Media Server.
Reconexión de flujos
La reconexión de flujos (compatible con Flash Media Server 3.5.3 y posterior) permite a los usuarios ver el contenido sin interrupciones incluso cuando pierden su conexión. El medio utiliza el búfer para reproducir mientras la lógica ActionScript vuelve a conectarse con Flash Media Server. Tras la reconexión, llame a NetStream.attach()
para utilizar el mismo objeto NetStream con el nuevo NetConnection. Utiliza las API NetStream.attach()
, NetStreamPlayTransitions.RESUME
y NetStreamPlayTrasitions.APPEND_AND_WAIT
para volver a conectar un flujo. Para obtener más información, consulte la documentación de Flash Media Server 3.5.3.
Parámetros
param:NetStreamPlayOptions |
Elementos de API relacionados
preloadEmbeddedData | () | método |
public function preloadEmbeddedData(param:NetStreamPlayOptions):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.5, Flash Lite 4 |
Extrae metadatos DRM desde un archivo multimedia almacenado localmente.
Utilice preloadEmbeddedMetaData()
como paso inicial al descargar y guardar en la caché las licencias DRM necesarias para la reproducción sin conexión. Cuando se detectan metadatos DRM en un archivo multimedia, se transfiere un objeto DRMContentData a la función onDRMContentData
del cliente de NetStream. Este objeto DRMContentData contiene la información necesaria para obtener la licencia requerida para reproducir el contenido. Transfiera el objeto DRMContentData al método loadVoucher()
de DRMManager para descargar la licencia.
Los pasos para precargar una licencia DRM incluyen:
-
Crear un objeto NetStream nuevo para precargar los metadatos.
- Asignar una función callback a la propiedad
onDRMContentData
declient
de NetStream. - Crear un nuevo objeto NetStreamPlayOptions y definir su propiedad
streamName
como la cadena de URL del archivo de vídeo local. - Llamar a
preloadEmbeddedMetadata()
transfiriendo en el objeto NetStreamPlayOptions. - Como respuesta a la función callback
onDRMContentData
, llamar al métodoloadVoucher()
de DRMManager y transferir el objeto DRMContentData. Si la propiedadauthenticationMethod
del objeto DRMContentData tiene el valoruserNameAndPassWord
, autentique al usuario en el servidor de derechos multimedia para poder cargar la licencia. - Cerrar el objeto NetStream empleado para la precarga.
Nota: para utilizar el mismo objeto NetStream para precargar metadatos y reproducir contenido, espere a que la llamada onPlayStatus
generada por la operación de precarga finalice para poder iniciar la reproducción.
Descargar licencias guardadas en la caché local. Reproducir contenido en línea también descarga y guarda en caché las licencias. Cuando se visualiza un archivo de contenido protegido con DRM, se extrae automáticamente una licencia de la caché local. Utilice DRMManager para gestionar la caché de licencias.
Notas: no se admite la precarga de metadatos DRM mediante conexiones HTTP, HTTPS o RTMP. Sólo es posible precargar metadatos de archivos guardados en el sistema de archivos.
Parámetros
param:NetStreamPlayOptions — Un objeto NetStreamPlayOptions que describe las opciones que se utilizan para procesar el archivo de contenido.
|
Elementos de API relacionados
publish | () | método |
public function publish(name:String = null, type:String = null):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Envía transmisiones de audio, vídeo y mensajes de datos desde un cliente a Flash Media Server y, opcionalmente, graba la transmisión. Este método distribuye un objeto NetStatusEvent con información sobre el flujo. Antes de llamar a NetStream.publish()
, capture el evento "NetConnection.Connect.Success"
para verificar que la aplicación se ha conectado correctamente a Flash Media Server.
Al publicar, puede grabar archivos en formato FLV o F4V. Si graba un archivo en formato FV4, utilice una herramienta preestablecida para editar o reproducir el archivo en otra aplicación. Para descargar la herramienta, consulte www.adobe.com/go/fms_tools_es.
Nota:no utilice este método para reproducir un flujo. Para reproducir un flujo, llame al método NetStream.play()
.
Flujo de trabajo para publicar una transmisión
- Cree un objeto NetConnection y llame a
NetConnection.connect()
. - Llame a
NetConnection.addEventListener()
para que detecte eventos NetStatusEvent. - En el evento
"NetConnection.Connect.Success"
, cree un objeto NetStream y transfiera el objeto NetConnection al constructor. - Para capturar audio y vídeo, llame al método
NetStream.attachAudio()
y al métodoNetStream.attachCamera()
. - Para publicar un flujo, llame al método
NetStream.publish()
. Puede grabar los datos mientras los publica para que los usuarios puedan reproducirlos más adelante.
Nota:un objeto NetStream puede publicar una transmisión o reproducir un flujo, no ambos. Para publicar una transmisión y ver la reproducción desde el servidor, cree dos objetos NetStream. Puede enviar varios objetos NetStream sobre un objeto NetConnection.
Cuando Flash Media Server graba un flujo, crea un archivo. De forma predeterminada, el servidor crea un directorio con el nombre de la instancia de la aplicación transferida a NetConnection.connect()
y almacena el archivo en el directorio. Por ejemplo, el siguiente código se conecta a la instancia predeterminada de la aplicación "lectureseries" y graba un flujo denominado "lecture". El archivo "lecture.flv" se graba en el directorio applications/lectureseries/streams/_definst_:
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://fms.example.com/lectureseries"); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); function netStatusHandler(event:NetStatusEvent):void { if (event.info.code == "NetConnection.Connect.Success") { var ns:NetStream = new NetStream(nc); ns.publish("lecture", "record"); } }
El ejemplo siguiente se conecta a la instancia de "monday" de la misma aplicación. El archivo "lecture.flv" se graba en el directorio /applications/lectureseries/streams/monday:
var nc:NetConnection = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); nc.connect("rtmp://fms.example.com/lectureseries/monday"); function netStatusHandler(event:NetStatusEvent):void { if (event.info.code == "NetConnection.Connect.Success") { var ns:NetStream = new NetStream(nc); ns.publish("lecture", "record"); } }
Parámetros
name:String (default = null ) — Una cadena que identifica la transmisión. Los clientes que se suscriban a esta transmisión transfieren este nombre cuando llaman a NetStream.play() . No agregue "/" al nombre de la transmisión. Por ejemplo, no utilice el nombre de transmisión "bolero/" .
Puede grabar archivos en los formatos que se describen en la siguiente tabla (no se puede usar
| |||||||||||||
type:String (default = null ) — Una cadena que especifica cómo publicar la transmisión. Los valores válidos son "record ", "append ", "appendWithGap " y "live ". El valor predeterminado es "live ".
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
Para ejecutar este ejemplo necesita una cámara conectada al ordenador. También es necesario añadir un componente Button y un componente Label a la biblioteca.
La aplicación tiene un botón que publica un flujo (lo envía a Flash Media Server) después de que la aplicación se haya conectado correctamente al servidor. La aplicación reproduce el flujo desde el servidor sólo después de que el flujo se haya publicado correctamente. NetStatusEvent
devuelve un objeto info
con una propiedad code
que especifica estos casos. La función netStatusHandler
gestiona estos eventos para las clases NetConnection y NetStream.
package { import flash.display.Sprite; import flash.events.*; import flash.media.Video; import flash.media.Camera; import flash.net.NetConnection; import flash.net.NetStream; import fl.controls.Button; import fl.controls.Label; public class NetStream_publish extends Sprite { private var connectionURL:String = "rtmp://localhost/live/"; private var videoURL:String = "liveVideo"; private var nc:NetConnection; private var ns_publish:NetStream; private var ns_playback:NetStream; private var video_publish:Video; private var video_playback:Video; private var cam:Camera; private var b:Button; private var l:Label; public function NetStream_publish() { setUpUI(); nc = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Add bandwidth detection handlers on the NetConnection Client to // prevent Reference Errors at runtime when using the "live" and "vod" applications. var clientObj:Object = new Object(); clientObj.onBWDone = onBWDone; clientObj.onBWCheck = onBWCheck; nc.client = clientObj; // Connect to the "live" application on Flash Media Server. nc.connect(connectionURL); } private function netStatusHandler(event:NetStatusEvent):void { trace(event.info.code + " | " + event.info.description); switch (event.info.code) { case "NetConnection.Connect.Success": // Enable the "Publish" button after the client connects to the server. b.enabled = true; break; case "NetStream.Publish.Start": playbackVideo(); break; } } private function publishVideo(event:MouseEvent):void{ // Disable the button so that you can only publish once. b.enabled = false; // Create a NetStream to send video to FMS. ns_publish = new NetStream(nc); ns_publish.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Publish (send) the video to FMS. cam = Camera.getCamera(); ns_publish.attachCamera(cam); ns_publish.publish(videoURL); } private function playbackVideo():void { // Create the Video object to show the video on the stage video_playback = new Video(cam.width, cam.height); video_playback.x = cam.width + 20; video_playback.y = 10; addChild(video_playback); // Create a NetStream to receive the video from FMS. ns_playback = new NetStream(nc); ns_playback.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Display the video that was published to FMS. video_playback.attachNetStream(ns_playback); ns_playback.play(videoURL); } private function setUpUI():void { b = new Button(); b.addEventListener(MouseEvent.CLICK, publishVideo); b.width = 150; b.label = "Publish video to server"; b.move(10, 150); b.enabled = false; l = new Label(); l.width = 150; l.text = "Playing back from server" l.move(190, 150); addChild(b); addChild(l); } // Handlers called by the Flash Media Server "live" and "vod" applications. public function onBWDone(... rest):Boolean { return true; } public function onBWCheck(... rest):Number { return 0; } } }
receiveAudio | () | método |
public function receiveAudio(flag:Boolean):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Especifica si se reproduce audio entrante en la transmisión. Este método sólo está disponible para los clientes suscritos a la transmisión especificada. No está disponible para el editor de la transmisión. Llame a este método antes o después de llamar al método NetStream.play()
. Por ejemplo, asociar este método a un botón para permitir a los usuarios silenciar y anular el silencio del audio. Utilice este método sólo en secuencias unicast que se reproducen desde Flash Media Server. Este método no funciona en flujos de multidifusión RTMFP o al utilizar el método NetStream.appendBytes()
.
Parámetros
flag:Boolean — Especifica si se reproduce audio entrante en la transmisión (true ) o no (false ). El valor predeterminado es true . Si la transmisión especificada contiene sólo datos de audio, NetStream.time deja de incrementarse cuando se transfiere false .
|
receiveVideo | () | método |
public function receiveVideo(flag:Boolean):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Especifica si se reproduce audio entrante en el flujo. Este método sólo está disponible para los clientes suscritos a la transmisión especificada. No está disponible para el editor de la transmisión. Llame a este método antes o después de llamar al método NetStream.play()
. Por ejemplo, asociar este método a un botón para permitir a los usuarios mostrar y ocultar el vídeo. Utilice este método sólo en secuencias unicast que se reproducen desde Flash Media Server. Este método no funciona en flujos de multidifusión RTMFP o al utilizar el método NetStream.appendBytes()
.
Parámetros
flag:Boolean — Especifica si se reproducirá vídeo entrante en la transmisión (true ) o no (false ). El valor predeterminado es true . Si la transmisión especificada contiene sólo datos de video, NetStream.time deja de incrementarse cuando se transfiere false .
|
receiveVideoFPS | () | método |
public function receiveVideoFPS(FPS:Number):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Especifica la velocidad de fotogramas del vídeo entrante. Este método sólo está disponible para los clientes suscritos a la transmisión especificada. No está disponible para el editor de la transmisión. Llame a este método antes o después de llamar al método NetStream.play()
. Por ejemplo, llame a este método para permitir que los usuarios definan la velocidad de fotogramas del vídeo. Para determinar la velocidad de fotogramas actual, utilice NetStream.currentFPS
. Para detener la recepción de vídeo, pase 0
.
Si transfiere un valor al parámetro FPS para limitar la velocidad de fotogramas del vídeo, Flash Media Server intenta reducir la velocidad sin que afecte a la integridad del vídeo. Entre cada dos fotogramas clave, el servidor envía el número mínimo de fotogramas necesario para satisfacer la velocidad deseada. Tenga en cuenta que los fotogramas I (o fotogramas intermedios) se deben enviar de forma contigua; de lo contrario, el vídeo está dañado. Por lo tanto, el número deseado de fotogramas se envía inmediatamente y de forma contigua detrás de un fotograma clave. Como los fotogramas no están distribuidos uniformemente, el movimiento entre fotogramas únicos es uniforme y las interrupciones aparecen entre las secuencias de fotogramas.
Utilice este método sólo en secuencias unicast que se reproducen desde Flash Media Server. Este método no funciona en flujos de multidifusión RTMFP o al utilizar el método NetStream.appendBytes()
.
Parámetros
FPS:Number — Especifica la velocidad (en fotogramas por segundo) a la que se reproducirá el vídeo entrante.
|
resetDRMVouchers | () | método |
public static function resetDRMVouchers():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 11.8, Flash Lite 4 |
En aplicaciones de AIR, esta acción elimina todos los datos de licencias de gestión de derechos digitales (DRM) guardados en la caché local. Para aplicaciones basadas en navegador, esto solo está disponible durante errores 3322, y se comporta como el panel de configuración Reproducción de contenido protegido.
La aplicación debe volver a descargar las licencias necesarias desde el servidor de derechos multimedia para que el usuario pueda acceder a contenido protegido. Llamar a esta función equivale a llamar a la función resetDRMVouchers()
del objeto DRMManager.
Emite
IOError — No es posible eliminar los datos de las licencias.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
NetStream.resetDRMVouchers();
resume | () | método |
public function resume():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Reanuda la reproducción de un flujo de vídeo interrumpido. Si el vídeo ya se está reproduciendo, la llamada a este método no tendrá ningún efecto.
Elementos de API relacionados
seek | () | método |
public function seek(offset:Number):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Busca el fotograma clave (también denominado fotograma I en la industria del vídeo) más cercano a la ubicación especificada. El fotograma clave se ubica en un desplazamiento, en segundos, desde el comienzo de la transmisión.
Las transmisiones de vídeo se suelen codificar con dos tipos de fotogramas, los fotogramas clave (o fotogramas I) y los fotogramas P. El fotograma clave incluye una imagen completa, mientras que el fotograma P es un fotograma provisional que proporciona información adicional de vídeo entre fotogramas clave. La transmisión de vídeo normalmente tiene un fotograma clave cada 10-50 fotogramas.
Flash Media Server tiene varios tipos de comportamientos de búsqueda: búsqueda mejorada y búsqueda inteligente.
Búsqueda mejorada
La búsqueda mejorada está activada de forma predeterminada. Para desactivar las funciones de búsqueda mejorada, defina el elemento EnhancedSeek
del archivo de configuración application.xml
en Flash Media Server como false
.
Si está activada la búsqueda mejorada (valor predeterminado), el servidor genera un nuevo fotograma clave en offset
basado en el fotograma clave anterior y todos los fotogramas P que intervienen. Sin embargo, la generación de fotogramas clave crea una alta carga de procesamiento en el servidor y podría producirse una distorsión en el fotograma clave generado. Si el códec de vídeo es On2, el fotograma clave antes del punto de búsqueda y los fotogramas P entre el fotograma clave y el punto de búsqueda se envían al cliente.
Si la búsqueda mejorada está desactivada, el servidor inicia la transmisión a partir del fotograma clave más cercano. Por ejemplo, supongamos que un vídeo tiene fotogramas clave en 0 y 10 segundos. Una búsqueda a 4 segundos hace que la reproducción comience a los 4 segundos utilizando el fotograma clave en 0 segundos. El vídeo se queda congelado hasta que llega al siguiente fotograma clave a los 10 segundos. Para conseguir una mejor experiencia en la búsqueda, necesita reducir el intervalo de fotogramas clave. En el modo de búsqueda normal, no puede iniciar el vídeo en un punto entre fotogramas clave.
Búsqueda inteligente
Para activar la búsqueda inteligente, establezca NetStream.inBufferSeek
como true
.
La búsqueda inteligente permite que Flash Player busque hacia delante y hacia atrás en un búfer existente. Si la búsqueda inteligente está desactivada, cada vez que se llama a seek()
, Flash Player libera el búfer y solicita datos desde el servidor. Para obtener más información, consulte NetStream.inBufferSeek
.
Búsqueda en modo de generación de datos
Cuando se llama a seek()
en un modo de generación de datos NetStream, todos los bytes que se transfieren a appendBytes()
se descartan (no se colocan en el búfer, ni se acumulan en la FIFO parcial de mensajes, ni se analizan puntos de búsqueda) hasta que se llama a appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
o a appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK)
para restablecer el analizador. Para obtener más información sobre el modo de generación de datos, consulte NetStream.play()
.
Parámetros
offset:Number — El valor de tiempo aproximado, en segundos, de desplazamiento en un archivo de vídeo. Con Flash Media Server, si <EnhancedSeek> se establece en true en el archivo de configuración Application.xml (valor por defecto), el servidor genera un fotograma clave en offset .
|
Elementos de API relacionados
send | () | método |
public function send(handlerName:String, ... arguments):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Envía un mensaje en una transmisión publicada a todos los clientes suscritos. Este método sólo está disponible para el editor de la transmisión especificada. Este método se puede utilizar únicamente con Flash Media Server. Para procesar y responder a este mensaje, cree un controlador en el objeto NetStream
, por ejemplo, ns.HandlerName
.
Flash Player o AIR no serializa métodos ni datos, variables de prototipos de objetos ni variables no enumerables. En el caso de los objetos de visualización, Flash Player o AIR serializa la ruta, pero no los datos.
Puede llamar al método send()
para añadir fotogramas clave de datos a una transmisión en vivo publicada en Flash Media Server. Un fotograma clave de datos es un mensaje que añade un editor a la transmisión en vivo. Los fotogramas clave de datos suelen utilizarse para añadir metadatos a una transmisión en vivo antes de que los datos sean capturados para la transmisión desde una cámara y micrófono. El editor puede añadir un fotograma clave de datos en cualquier momento durante la publicación de la transmisión en vivo. El fotograma clave de datos se guarda en la memoria del servidor siempre que el editor esté conectado al servidor.
Los clientes suscritos a la transmisión en vivo antes de que se añada un fotograma clave de datos, lo reciben en cuanto se añade. Los clientes que se suscriben a la transmisión en vivo después de que se añada el fotograma clave de datos, lo reciben cuando se suscriben.
Para añadir un fotograma clave de metadatos a una transmisión en vivo enviada a Flash Media Server, utilice @setDataFrame
como nombre del controlador, seguido de dos argumentos adicionales, por ejemplo:
var ns:NetStream = new NetStream(nc); ns.send("@setDataFrame", "onMetaData", metaData);
El argumento @setDataFrame
hace referencia a un controlador especial creado en Flash Media Server. El argumento onMetaData
es el nombre de la función callback en la aplicación cliente que detecta el evento onMetaData
y recupera los metadatos. El tercer elemento, metaData
, es una instancia de Object
o Array
con propiedades que definen los valores de metadatos.
Utilice @clearDataFrame
para borrar un fotograma clave de metadatos que ya se haya definido en la transmisión:
ns.send("@clearDataFrame", "onMetaData");
Parámetros
handlerName:String — El mensaje que se va a enviar; también el nombre del controlador de ActionScript que recibe el mensaje. El nombre del controlador sólo puede tener un nivel de profundidad (es decir, no puede tener el formato principal/secundario) y es relativo al objeto de la transmisión. No utilice ningún término reservado al elegir el nombre de un controlador. Por ejemplo, utilizar "close " como nombre de un controlador provocaría errores en el método. Con Flash Media Server, utilice @setDataFrame para añadir un fotograma clave a la transmisión en vivo o @clearDataFrame para quitarla.
| |
... arguments — Argumentos opcionales; pueden ser de cualquier tipo. Se serializan y se envían a través de la conexión. El controlador receptor los recibe en el mismo orden. Si un parámetro es un objeto circular (por ejemplo, una lista vinculada circular), el serializador controla las referencias correctamente. Con Flash Media Server, si @setDataFrame es el primer argumento, utilice onMetaData como segundo argumento; para el tercer argumento, transfiera una instancia de Object o Array que tenga los metadatos definidos como propiedades. Consulte la Guía del desarrollador de Adobe Flash Media Server para ver una lista de sugerencias de nombres de propiedades. Con @clearDataFrame como primer argumento, utilice onMetaData como segundo parámetro y no como tercero.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
NetStream
. Uno se utiliza para publicar una transmisión en vivo en el servidor, mientras que el otro se suscribe a la transmisión.
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.client = new CustomClient(); vid.attachNetStream(ns2); ns2.play("dummy"); 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
. El controlador de eventos onMetaData
no está registrado con addEventListener()
, pero en su lugar es una función callback con el nombre onMetaData
, por ejemplo:
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);
setDRMAuthenticationCredentials | () | método |
public function setDRMAuthenticationCredentials(userName:String, password:String, type:String):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Lite 4 |
Configura las credenciales de autenticación DRM necesarias para poder ver el contenido cifrado.
El método setDRMAuthenticationCredentials()
debe proporcionar credenciales que coincidan con las recibidas y aceptadas por el proveedor de contenido o el servidor proxy. Son las mismas credenciales utilizadas por el usuario al obtener el permiso correspondiente para ver el contenido.
Parámetros
userName:String — Una credencial válida de nombre de usuario.
| |
password:String — La credencial de contraseña correspondiente al nombre de usuario suministrado.
| |
type:String — Una cadena que especifica el tipo de credenciales de autenticación facilitadas. Los valores válidos son "drm" y "proxy" . El valor predeterminado es "drm" .
|
Elementos de API relacionados
step | () | método |
public function step(frames:int):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Avanza o retrocede el número especificado de fotogramas, en relación al fotograma mostrado actualmente. Especifique un número positivo para avanzar y un número negativo para retroceder. Llame a este método para crear funcionalidad precisa de avance o rebobinado rápido.
Nota: este método no se admite en vídeo H.264 en AIR 3.0 for iOS.
Este método sólo está disponible cuando los datos se transmiten desde Flash Media Server 3.5.3 o posterior y cuando NetStream.inBufferSeek
es true
. Asimismo, el marco de destino debe estar en el búfer. Por ejemplo, si el fotograma mostrado actualmente es el fotograma número 120 y especifica un valor de 1000, el método falla si al número de fotograma 1120 no esté en el búfer.
Este método está pensado para que se utilice con los métodos pause()
o togglePause()
. Si avanza o retrocede 10 fotogramas durante la reproducción sin detenerla, es posible que no note los pasos o advierta cierto parpadeo. Asimismo, cuando se llama a pause()
o togglePause
, el audio se suprime.
Si la llamada al método NetStream.step()
se realiza correctamente, se envía un evento NetStatusEvent con "NetStream.Step.Notify" como valor de propiedad code
del objeto info.
Parámetros
frames:int |
Elementos de API relacionados
togglePause | () | método |
public function togglePause():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Realiza una pausa o reanuda la reproducción de un flujo. La primera vez que llame a este método, se realizará una pausa en la reproducción; la siguiente vez, se reanudará la reproducción. Este método se puede utilizar para que los usuarios puedan interrumpir o reanudar la reproducción pulsando sólo un botón.
Elementos de API relacionados
asyncError | Evento |
flash.events.AsyncErrorEvent
propiedad AsyncErrorEvent.type =
flash.events.AsyncErrorEvent.ASYNC_ERROR
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Se distribuye cuando se emite una excepción de forma asíncrona, es decir, desde un código asíncrono nativo. Este evento se distribuye cuando el servidor llama al método en un cliente que no está definido.
La constanteAsyncErrorEvent.ASYNC_ERROR
define el valor de la propiedad type
de un objeto de evento asyncError
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
target | Objeto que distribuye el evento. |
error | El error que desencadenó el evento. |
Elementos de API relacionados
drmAuthenticate | Evento |
flash.events.DRMAuthenticateEvent
propiedad DRMAuthenticateEvent.type =
flash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Lite 4 |
Se distribuye cuando un objeto NetStream intenta reproducir contenido cifrado con administración de derechos digitales (DRM) que requiere la autenticación de credenciales del usuario.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
Utilice el método setDRMAuthenticationCredentials()
del objeto NetStream para autenticar al usuario. Si falla la autenticación del usuario, la aplicación vuelve a intentarlo y distribuye un nuevo evento DRMAuthenticateEvent para el objeto NetStream.
DRMAuthenticateEvent.DRM_AUTHENTICATE
define el valor de la propiedad type
de un objeto de evento DRMAuthenticateEvent.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
authenticationType | Indica si las credenciales suministradas se utilizan para autenticar con el servidor Flash Media Rights Management Server (FMRMS) o un servidor proxy. |
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado para cancelar. |
header | Encabezado de archivo de contenido cifrado proporcionado por el servidor. |
netstream | Objeto NetStream que inició este evento |
passwordPrompt | Mensaje para credenciales de contraseña proporcionado por el servidor. |
target | Objeto NetStream. |
urlPrompt | Mensaje para visualizar la URL proporcionado por el servidor. |
usernamePrompt | Mensaje para credenciales de nombre de usuario proporcionado por el servidor. |
Elementos de API relacionados
drmError | Evento |
flash.events.DRMErrorEvent
propiedad DRMErrorEvent.type =
flash.events.DRMErrorEvent.DRM_ERROR
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Se distribuye cuando un objeto NetStream obtiene un error relacionado con DRM al intentar reproducir un archivo cifrado con administración de derechos digitales. Por ejemplo, los objetos DRMErrorEvent se distribuyen cuando falla la autorización del usuario. Puede deberse a que el usuario no haya adquirido los derechos necesarios para poder ver el contenido, o bien porque el proveedor de contenido no admite la aplicación de visualización.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
La constanteDRMErrorEvent.DRM_ERROR
define el valor de la propiedad type
de un objeto de evento drmError
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
errorID | Se ha asignado un código de error numérico al problema. |
subErrorID | Código de error que indica más información detallada sobre el problema subyacente. |
target | Objeto NetStream. |
Elementos de API relacionados
drmStatus | Evento |
flash.events.DRMStatusEvent
propiedad DRMStatusEvent.type =
flash.events.DRMStatusEvent.DRM_STATUS
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Se distribuye cuando el contenido DRM (administración de derechos digitales) comienza a reproducirse (si el usuario está autenticado y autorizado para reproducir el contenido).
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
El objeto DRMStatusEvent contiene información relacionada con la licencia, por ejemplo, si el contenido está disponible fuera de línea o cuándo vence la licencia y los usuarios ya no puede ver el contenido.
La constanteDRMStatusEvent.DRM_STATUS
define el valor de la propiedad type
de un objeto de evento drmStatus
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
detail | Cadena que explica el contexto del evento de estado. |
isAnonymous | Indica si el contenido protegido con cifrado DRM está disponible sin necesidad de que el usuario proporcione sus credenciales de autenticación. |
isAvailableOffline | Indica si el contenido protegido con cifrado DRM está disponible sin conexión. |
offlineLeasePeriod | Número de días restantes para poder ver el contenido sin conexión. |
normativas | Objeto personalizado del evento de estado de DRM. |
target | Objeto NetStream. |
voucherEndDate | Fecha absoluta de vencimiento de la licencia a partir de la cual los usuarios no pueden seguir viendo el contenido |
contentData | DRMContentData para el contenido |
voucher | Objeto DRMVoucher para el contenido. |
isLocal | Indica si el contenido está guardado en el sistema de archivos locales |
Elementos de API relacionados
ioError | Evento |
flash.events.IOErrorEvent
propiedad IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Se distribuye cuando se produce un error de entrada o salida que provoca que una operación de red se realice incorrectamente.
Define el valor de la propiedadtype
de un objeto de evento ioError
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
errorID | Un número de referencia asociado al error concreto (sólo AIR). |
target | El objeto de red en el que se produce el error de entrada/salida. |
text | Texto que se mostrará como mensaje de error. |
mediaTypeData | Evento |
flash.events.NetDataEvent
propiedad NetDataEvent.type =
flash.events.NetDataEvent
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.3, AIR 2.7 |
Se distribuye cuando se reproduce contenido de vídeo y se procesa cierto tipo de mensajes.
Se distribuye un objeto NetDataEvent para los siguientes mensajes:
- onCuePoint
- onImageData
- onMetaData
- onPlayStatus (para el código NetStream.Play.Complete)
- onTextData
- onXMPData
Nota: este evento no se distribuye por el contenido ejecutado en Flash Player en el navegador de Android o Blackberry Tablet OS o por el contenido ejecutado en AIR en iOS.
netStatus | Evento |
flash.events.NetStatusEvent
propiedad NetStatusEvent.type =
flash.events.NetStatusEvent.NET_STATUS
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Se distribuye cuando un objeto NetStream informa sobre su estado o situación de error. El evento netStatus
contiene una propiedad info
, que es un objeto de información que contiene información específica sobre el evento, por ejemplo, si el intento de conexión se realizó correctamente o si falló.
type
de un objeto de evento netStatus
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
info | Un objeto con propiedades que describen el estado del objeto o la situación de error. |
target | El objeto NetConnection o NetStream que informa sobre su estado. |
Elementos de API relacionados
onCuePoint | Evento |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Establece un detector para responder cuando la reproducción del archivo de vídeo llegue a un punto de referencia. Puede utilizar este detector para desencadenar acciones en el código cuando el vídeo alcance un cuepoint concreto, lo que permite sincronizar otras acciones de la aplicación con eventos de reproducción de vídeo. Para obtener información sobre los formatos de archivo de vídeo admitidos en Flash Media Server, consulte www.adobe.com/go/learn_fms_fileformats_es.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
onCuePoint
es en realidad una propiedad del objeto NetStream.client
. La propiedad aparece en la sección de eventos porque responde a un evento de datos, bien cuando se transmiten flujos de medios mediante Flash Media Server o durante la reproducción de un archivo FLV. Para más información, consulte la descripción de la clase NetStream. No se puede utilizar el método addEventListener()
(ni cualquier otro método EventDispatcher) para detectar o procesar onCuePoint
como un evento. Definir una función callback y vincularla a uno de los siguientes objetos:
- El objeto al que hace referencia la propiedad
client
de una instancia de NetStream. - Una instancia de una subclase de NetStream. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Crear una subclase de NetStream y definir el controlador de eventos en la subclase. También puede hacer que la subclase sea dinámica y añadir la función de controlador de eventos a una instancia de la subclase.
El detector de eventos asociado se activa después de una llamada al método NetStream.play()
, pero antes que avance la cabeza lectora de vídeo.
Puede incorporar los tipos de puntos de referencia siguientes en un archivo de vídeo:
- Un punto de referencia de navegación especifica un fotograma clave dentro del archivo de vídeo y su propiedad
time
corresponde al fotograma clave exacto. Los puntos de referencia de navegación suelen utilizarse como marcadores o puntos de entrada para que los usuarios puedan navegar por el archivo de vídeo. - Un punto de referencia de evento especifica un tiempo concreto. El tiempo puede o no corresponder a un fotograma clave concreto. Un punto de referencia de evento suele representar un momento del vídeo en el que ocurre algo que podría utilizarse para desencadenar otros eventos de aplicación.
El objeto del evento onCuePoint
tiene las siguientes propiedades:
Propiedad | Descripción |
---|---|
name | El nombre dado al punto de referencia cuando se incorporó en el archivo de vídeo. |
parameters | Conjunto asociativo de cadenas de par nombre y valor especificadas para este punto de referencia. Se puede utilizar cualquier cadena válida para el nombre o el valor del parámetro. |
time | Tiempo, en segundos, en el que se produjo el punto de referencia en el archivo de vídeo durante la reproducción. |
type | Tipo de punto de referencia que se alcanzó: navegación o evento. |
Se pueden definir puntos de referencia en un archivo de vídeo al codificar el archivo por primera vez o al importar un clip de vídeo en la herramienta de edición de Flash mediante el Asistente de importación de vídeo.
El evento onMetaData
también recupera información sobre los puntos de referencia de un archivo de vídeo. Sin embargo, el evento onMetaData
obtiene la información de todos los puntos de referencia antes de que el vídeo comience a reproducirse. El evento onCuePoint
recibe información sobre un solo punto de referencia en el momento especificado para dicho punto durante la reproducción.
En general, para que el código responda a un punto de referencia concreto en el momento en que se produce, utilice el evento onCuePoint
para desencadenar alguna acción en el código.
Puede utilizar la lista de puntos de referencia facilitada con el evento onMetaData
para que el usuario comience a reproducir el vídeo en los puntos predefinidos del flujo de vídeo. Transfiere el valor de la propiedad time
del punto de referencia al método NetStream.seek()
para reproducir el vídeo desde dicho punto de referencia.
Ejemplo ( Cómo utilizar este ejemplo )
var video:Video = new Video(); addChild(video); var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.client = {}; ns.client.onMetaData = ns_onMetaData; ns.client.onCuePoint = ns_onCuePoint; video.attachNetStream(ns); ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv"); function ns_onMetaData(item:Object):void { trace("metaData"); // Resize video instance. video.width = item.width; video.height = item.height; // Center video instance on Stage. video.x = (stage.stageWidth - video.width) / 2; video.y = (stage.stageHeight - video.height) / 2; } function ns_onCuePoint(item:Object):void { trace("cuePoint"); trace(item.name + "\t" + item.time); }
Elementos de API relacionados
onDRMContentData | Evento |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.5, Flash Lite 4 |
Establece un detector para responder cuando AIR extrae metadatos de contenido DRM incorporados en un archivo multimedia.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
Un objeto DRMContentData contiene la información necesaria para obtener una licencia y reproducir un archivo multimedia protegido con DRM. Utilice la clase DRMManager para descargar la licencia con esta información.
onDRMContentData
es una propiedad del objeto NetStream.client
. Esta propiedad se incluye en la sección Eventos porque responde a los eventos de datos cuando se precargan datos incorporados desde un archivo multimedia local. Para más información, consulte la descripción de la clase NetStream. No se puede utilizar el método addEventListener()
(ni cualquier otro método EventDispatcher) para detectar o procesar onDRMContentData
como un evento. Más bien, se debe definir una única función callback y vincularla directamente a uno de los siguientes objetos:
- El objeto al que hace referencia la propiedad
client
de una instancia de NetStream. - Una instancia de una subclase de NetStream. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Sin embargo, sí se puede crear una subclase de NetStream y definir el controlador de eventos en la subclase, o bien hacer que la subclase sea dinámica y añadir la función del controlador de eventos a una instancia de la subclase.
Elementos de API relacionados
onImageData | Evento |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Establece un detector para responder cuando Flash Player recibe datos de imagen como un conjunto de bytes incorporado en un archivo en reproducción. Los datos de imagen pueden producir contenido JPEG, PNG o GIF. Utilice el método flash.display.Loader.loadBytes()
para cargar el conjunto de bytes en un objeto de visualización.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
onImageData
es en realidad una propiedad del objeto NetStream.client
. La propiedad aparece en la sección de eventos porque responde a un evento de datos, bien cuando se transmiten flujos de medios mediante Flash Media Server o durante la reproducción de un archivo FLV. Para más información, consulte la descripción de la clase NetStream. No se puede utilizar el método addEventListener()
(ni cualquier otro método EventDispatcher) para detectar o procesar onImageData
como un evento. Defina una única función callback y vincúlela a uno de los siguientes objetos:
- El objeto al que hace referencia la propiedad
client
de una instancia de NetStream. - Una instancia de una subclase de NetStream. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Crear una subclase de NetStream y definir el controlador de eventos en la subclase. También puede hacer que la subclase sea dinámica y añadir la función de controlador de eventos a una instancia de la subclase.
El detector de eventos asociado se activa después de una llamada al método NetStream.play()
, pero antes que avance la cabeza lectora de vídeo.
El objeto de evento onImageData contiene los datos de imagen como un conjunto de bytes enviada a través de un canal de datos AMF0.
Ejemplo ( Cómo utilizar este ejemplo )
Netstream.client
para controlar las funciones callback de onTextData
y onImageData
. La función onImageDataHandler()
utiliza la propiedad imageData
del objeto de evento onImageData para guardar el conjunto de bytes. La función onTextDataHandler()
utiliza la propiedad textData
del objeto de evento onTextData para guardar las porciones de datos de texto (cada porción de datos es una propiedad del objeto textData
).
Debe sustituir una ubicación real con un archivo multimedia con metadatos de texto o de imagen para la ubicación de "yourURL"
en el código.
También puede controlar los datos de imagen y texto con una clase personalizada. Consulte el artículo Handling metadata and cue points in Flash video (Control de metadatos y CuePoints en vídeo de Flash) para obtener más información y ejemplos.
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 my_video:Video = new Video(); addChild(my_video); 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.client = customClient; my_video.attachNetStream(my_ns); my_ns.play("yourURL"); } 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]); } } } }
Elementos de API relacionados
onMetaData | Evento |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Establece un detector para responder cuando Flash Player recibe información descriptiva incorporada en en el vídeo en reproducción. Para obtener información sobre los formatos de archivo de vídeo admitidos en Flash Media Server, consulte www.adobe.com/go/learn_fms_fileformats_es.
onMetaData
es en realidad una propiedad del objeto NetStream.client
. La propiedad aparece en la sección de eventos porque responde a un evento de datos, bien cuando se transmiten flujos de medios mediante Flash Media Server o durante la reproducción de un archivo FLV. Para obtener más información, consulte la descripción de la clase NetStream y de la propiedad NetStream.client
. No se puede utilizar el método addEventListener()
(ni cualquier otro método EventDispatcher) para detectar o procesar onMetaData
como un evento. Defina una única función callback y vincúlela a uno de los siguientes objetos:
- El objeto al que hace referencia la propiedad
client
de una instancia de NetStream. - Una instancia de una subclase de NetStream. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Puede crear una subclase de NetStream y definir el controlador de eventos en la subclase. También puede hacer que la subclase sea dinámica y añadir la función de controlador de eventos a una instancia de la subclase.
La utilidad Flash Video Exporter (versión 1.1 o posterior) incorpora la duración del vídeo, la fecha de creación, la velocidad de datos y otra información en el propio archivo de vídeo. Los distintos codificadores de vídeo incorporan diferentes conjuntos de metadatos.
El detector de eventos asociado se activa después de una llamada al método NetStream.play()
, pero antes que avance la cabeza lectora de vídeo.
En muchos casos, el valor de duración incorporado en los metadatos de la transmisión es una aproximación a la duración real, pero sin llegar a ser exacto. Es decir, no coincide siempre con el valor de la propiedad NetStream.time
cuando la cabeza lectora se encuentra al final del flujo de vídeo.
El objeto de evento transferido al controlador de eventos onMetaData contiene una propiedad para cada fragmento de datos.
Ejemplo ( Cómo utilizar este ejemplo )
var video:Video = new Video(); addChild(video); var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.client = {}; ns.client.onMetaData = ns_onMetaData; ns.client.onCuePoint = ns_onCuePoint; video.attachNetStream(ns); ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv"); function ns_onMetaData(item:Object):void { trace("metaData"); // Resize video instance. video.width = item.width; video.height = item.height; // Center video instance on Stage. video.x = (stage.stageWidth - video.width) / 2; video.y = (stage.stageHeight - video.height) / 2; } function ns_onCuePoint(item:Object):void { trace("cuePoint"); trace(item.name + "\t" + item.time); }
Elementos de API relacionados
onPlayStatus | Evento |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Establece un detector para responder cuando un objeto NetStream haya reproducido completamente el flujo. El objeto de evento asociado proporciona información además del valor devuelto por el evento netStatus
. Puede utilizar esta propiedad controlador para desencadenar acciones en el código cuando un objeto NetStream cambie de una transmisión a otra en una lista de reproducción (tal como indica el objeto de información NetStream.Play.Switch
) o cuando un objeto NetStream se haya reproducido hasta el final (tal como indica el objeto de información NetStream.Play.Complete
).
onPlayStaus
es en realidad una propiedad del objeto NetStream.client
. La propiedad aparece en la sección de eventos porque responde a un evento de datos, bien cuando se transmiten flujos de medios mediante Flash Media Server o durante la reproducción de un archivo FLV. Para más información, consulte la descripción de la clase NetStream. No se puede utilizar el método addEventListener()
(ni cualquier otro método EventDispatcher) para detectar o procesar onPlayStatus
como un evento. Definir una función callback y vincularla a uno de los siguientes objetos:
- El objeto al que hace referencia la propiedad
client
de una instancia de NetStream. - Una instancia de una subclase de NetStream. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Crear una subclase de NetStream y definir el controlador de eventos en la subclase. También puede hacer que la subclase sea dinámica y añadir la función de controlador de eventos a una instancia de la subclase.
Este evento puede devolver un objeto de información con las siguientes propiedades:
Propiedad code | Propiedad level | Significado |
---|---|---|
NetStream.Play.Switch | "status" | El suscriptor está cambiando de una transmisión a otra en una lista de reproducción. |
NetStream.Play.Complete | "status" | Ha finalizado la reproducción. |
NetStream.Play.TransitionComplete | "status" | El suscriptor está cambiando a nuevo flujo como resultado de un cambio de velocidad de bits de flujo. |
Elementos de API relacionados
onSeekPoint | Evento |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Se llama de forma sincrónica desde appendBytes()
cuando el analizador de bytes añadidos encuentra un punto que interpreta como punto localizable (por ejemplo, un fotograma clave de vídeo). Utilice este evento para construir una tabla de puntos de búsqueda. byteCount
corresponde a byteCount
en el primer byte del mensaje analizable para ese punto de búsqueda y se restablece en cero como se describe más arriba. Para realizar la búsqueda, en el evento NetStream.Seek.Notify
, busque los bytes que comienzan en un punto de búsqueda y llame a appendBytes(bytes)
. Si el argumento bytes
es un ByteArray
que consta de bytes a partir del punto de búsqueda, el vídeo se reproduce en ese punto de búsqueda.
Nota: las llamadas a appendBytes()
desde esta función callback se omiten.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
La propiedad onSeekPoint
es una propiedad del objeto NetStream.client
. La propiedad aparece en la sección de eventos porque responde a los datos que llegan a al método appendBytes()
. Para obtener más información, consulte la descripción de la clase NetStream y de la propiedad NetStream.client
. No se puede utilizar el método addEventListener()
(ni cualquier otro método EventDispatcher) para detectar o procesar onSeekPoint
como un evento. Para utilizar onSeekPoint
, defina una función callback y vincúlela a uno de los siguientes objetos:
- El objeto al que hace referencia la propiedad
client
de una instancia de NetStream. - Una instancia de una subclase de NetStream. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Sin embargo, sí se puede crear una subclase de NetStream y definir el controlador de eventos en la subclase. También puede hacer que la subclase sea dinámica y añadir la función de controlador de eventos a una instancia de la subclase.
Elementos de API relacionados
onTextData | Evento |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Establece un detector para responder cuando Flash Player recibe datos de texto incorporados en un archivo en reproducción. Los datos de texto están en formato UTF-8 y pueden contener información sobre el formato basado en la especificación de texto temporizado 3GP.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
onTextData
es en realidad una propiedad del objeto NetStream.client
. La propiedad aparece en la sección de eventos porque responde a un evento de datos, bien cuando se transmiten flujos de medios mediante Flash Media Server o durante la reproducción de un archivo FLV. Para más información, consulte la descripción de la clase NetStream. No se puede utilizar el método addEventListener()
(ni cualquier otro método EventDispatcher) para detectar o procesar onTextData
como un evento. Definir una función callback y vincularla a uno de los siguientes objetos:
- El objeto al que hace referencia la propiedad
client
de una instancia de NetStream. - Una instancia de una subclase de NetStream. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Crear una subclase de NetStream y definir el controlador de eventos en la subclase. También puede hacer que la subclase sea dinámica y añadir la función de controlador de eventos a una instancia de la subclase.
El detector de eventos asociado se activa después de una llamada al método NetStream.play()
, pero antes que avance la cabeza lectora de vídeo.
El objeto de evento onTextData contiene una propiedad para cada porción de datos de texto.
Ejemplo ( Cómo utilizar este ejemplo )
Netstream.client
para controlar las funciones callback de onTextData
y onImageData
. La función onImageDataHandler()
utiliza la propiedad imageData
del objeto de evento onImageData para guardar el conjunto de bytes. La función onTextDataHandler()
utiliza la propiedad textData
del objeto de evento onTextData para guardar las porciones de datos de texto (cada porción de datos es una propiedad del objeto textData
).
Debe sustituir una ubicación real con un archivo multimedia con metadatos de texto o de imagen para la ubicación de "yourURL"
en el código.
También puede controlar los datos de imagen y texto con una clase personalizada. Consulte el artículo Handling metadata and cue points in Flash video (Control de metadatos y CuePoints en vídeo de Flash) para obtener más información y ejemplos.
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 my_video:Video = new Video(); addChild(my_video); 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.client = customClient; my_video.attachNetStream(my_ns); my_ns.play("yourURL"); } 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]); } } } }
Elementos de API relacionados
onXMPData | Evento |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Establece un detector para responder cuando Flash Player recibe información específica a la tecnología Extensible Metadata Platform (XMP) de Adobe incrustada en el vídeo que se está reproduciendo. Para obtener información sobre los formatos de archivo de vídeo admitidos en Flash Media Server, consulte www.adobe.com/go/learn_fms_fileformats_es.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
onXMPData
es en realidad una propiedad del objeto NetStream.client
. La propiedad aparece en la sección de eventos porque responde a un evento de datos, bien cuando se transmiten flujos de medios mediante Flash Media Server o durante la reproducción de un archivo FLV. Para obtener más información, consulte la descripción de la clase NetStream y de la propiedad NetStream.client
. No se puede utilizar el método addEventListener()
(ni cualquier otro método EventDispatcher) para detectar o procesar onMetaData
como un evento. Definir una función callback y vincularla a uno de los siguientes objetos:
- El objeto al que hace referencia la propiedad
client
de una instancia de NetStream. - Una instancia de una subclase de NetStream. NetStream es una clase sellada cerrada, lo que significa que no se pueden añadir propiedades o métodos a un objeto NetStream en tiempo de ejecución. Sin embargo, sí se puede crear una subclase de NetStream y definir el controlador de eventos en la subclase. También puede hacer que la subclase sea dinámica y añadir la función de controlador de eventos a una instancia de la subclase.
El detector de eventos asociado se activa después de una llamada al método NetStream.play()
, pero antes que avance la cabeza lectora de vídeo.
El objeto transmitido a la función de gestión de eventos onXMPData()
tiene una propiedad data
que es una cadena. La cadena se genera a partir de un cuadro de identificador exclusivo universal (UUID) de nivel superior. (El cuadro de UUID de 128 bits de nivel superior es BE7ACFCB-97A9-42E8-9C71-999491E3AFAC
.) Este cuadro de UUID de nivel superior contiene exactamente un documento XML representado como cadena UTF-8 terminada en cero.
Elementos de API relacionados
status | Evento |
flash.events.StatusEvent
propiedad StatusEvent.type =
flash.events.StatusEvent.STATUS
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 1.0, Flash Lite 4 |
Se distribuye cuando la aplicación intenta reproducir contenido cifrado con administración de derechos digitales (DRM); se invoca el método NetStream.play()
. El valor de la propiedad code del estado será "DRM.encryptedFLV"
.
Nota: este evento no se admite en vídeo H.264 en AIR 3.0 for iOS.
Define el valor de la propiedadtype
de un objeto de evento status
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
code | Descripción del estado del objeto. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
level | La categoría del mensaje, por ejemplo, "status" , "warning" o "error" . |
target | El objeto que informa sobre su estado. |
Elementos de API relacionados
CONNECT_TO_FMS | Constante |
public static const CONNECT_TO_FMS:String = "connectToFMS"
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Objeto estático utilizado como parámetro en el constructor para una instancia de NetStream. Se trata del valor predeterminado del segundo parámetro en el constructor NetStream; la aplicación no lo utiliza para la reproducción progresiva de medios. Cuando se utiliza, este parámetro hace que el constructor realice una conexión con una instancia de Flash Media Server.
DIRECT_CONNECTIONS | Constante |
public static const DIRECT_CONNECTIONS:String = "directConnections"
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Crea una conexión del editor entre homólogos. Transmita esta cadena para el segundo (opcional) parámetro al constructor para una instancia de NetStream. Con esta cadena, una aplicación puede crear una conexión NetStream para poder publicar audio y vídeo a los clientes.
En este ejemplo, el código que crea los objetos Video y NetStream y llama a los métodos Video.attachNetStream()
y NetStream.play()
se coloca en una función de controlador. Sólo se llamará al controlador si el intento de conexión con el objeto NetConnection se realiza correctamente; es decir, si el evento netStatus
devuelve un objeto info
con una propiedad a code
que indica una correcta realización. Se recomienda que espere a establecer una conexión correcta antes de llamar a 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 = "http://www.helpexamples.com/flash/video/cuepoints.flv"; private var connection:NetConnection; private var stream:NetStream; private var video:Video = new Video(); 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 { addChild(video); var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.client = new CustomClient(); video.attachNetStream(stream); stream.play(videoURL); } } } 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); } }
mdata
se utiliza para configurar la anchura y altura de una instancia de vídeo video
:
//Place the following in the connectStream() function //in the NetConnectionExample code var metaSniffer:Object=new Object(); stream.client=metaSniffer; //stream is the NetStream instance metaSniffer.onMetaData=getMeta; // Add the following function within the NetConnectionExample class private function getMeta (mdata:Object):void { video.width=mdata.width/2; video.height=mdata.height/2; }
Tue Jun 12 2018, 02:12 PM Z