Comunidad de diseño web y desarrollo en internet online

No puedo publicar video

Citar            
MensajeEscrito el 02 Jul 2012 10:50 am
Estoy programando con Flash Builder. Puedo ver el video en el equipo local, pero no lo publica.
En la consola de administración de FMS, en la pestaña Streams me sale: PruebaEmisión, Live, pero no me pone que esté publicando, de hecho no se dispara la función estadoStreamEmisor.

He probado una aplicación que he econtrado en AS2

Código ActionScript :

        import flash.display.Sprite;
        import mx.controls.Alert;
   public var nc:NetConnection;
   public var camara:Camera = Camera.getCamera();
   public var microfono:Microphone = Microphone.getMicrophone();



   private function inicializar():void
   {
// se ejecuta al cargar 
        camara.setMode(320,240,30,false);
   camara.setQuality(65536, 95);   
   camara.setKeyFrameInterval(1);
   camara.setLoopback(true);
   nc = new NetConnection();
   nc.objectEncoding = ObjectEncoding.AMF0;
   nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
   nc.client = this;
   nc.connect("rtmp://localhost:1935/prueba");

   }
   private function netStatusHandler(event:NetStatusEvent):void
   {
      if (event.info.level != "error")
      {
         lblEstado.text="Conectado";
      }
      else
      {
      lblEstado.text=event.info.level;
      }
}
   protected function btnEmitir_clickHandler(event:MouseEvent):void
      {
            // TODO Auto-generated method stub
            
            var stream:NetStream= new NetStream(nc);            
            var video:Video = new Video();
            stream.addEventListener(NetStatusEvent.NET_STATUS, estadoStreamEmisor);

            var titulo:String="PruebaEmision";
            video.attachCamera(camara);
            stream = new NetStream(nc);
            stream.attachCamera(camara);
            stream.attachAudio(microfono);
                        
            stream.publish(titulo);
            
            displayEmisor.addChild(video); // contenedor para mostrar el video   
            

            
   }
      
   private function estadoStreamEmisor(e:NetStatusEvent):void 
   {
// Esta función no se ejecuta.
   Alert.show("Emitiendo");
   lblInfo.text=e.info.code;
   }

Por zeroSting

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Jul 2012 02:54 pm
Estoy programando con Flash Builder


Flash builder usa AS3, pero pones codigo en AS2 ... algo no me cierra.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Jul 2012 03:51 pm
Perdon me explique mal. Queria decir que probe un ejemplo creado en AS2 ya compilado y si que funciona. El código que pongo es AS3.

Por zeroSting

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Jul 2012 04:13 pm
¿Supones que no lo publica porque no lo ves en la consola, o estas intentando reproducirlo en algun lugar y no puedes?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Jul 2012 04:38 pm
Intento reproducirlo pero no se ve nada El código que uso para reproducir es:

protected function btnRecibir_clickHandler(event:MouseEvent):void
{

var stream2:NetStream= new NetStream(nc);
var video2:Video = new Video();
stream2.addEventListener(NetStatusEvent.NET_STATUS, estadoStreamReceptor);
stream2.client=this;
stream2.play("emision");
video2.attachNetStream(stream2);
displayReceptor.addChild(video2);

}
private function estadoStreamReceptor(e:NetStatusEvent):void
{
lblInfo.text=e.info.code; // Salida: NetStream.Play.Start
}

Por zeroSting

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Jul 2012 05:18 pm
Asumo que en la aplicación donde reproduces has conectado al FMS con algo asi

nc.connect("rtmp://localhost:1935/prueba");

y que no lo pones por brevedad. En estadoStreamReceptor pones como comentario NetStream.Play.Start ... ¿eso quiere decir que recibes el evento? ¿No recibes antes un buffering por ejemplo? ¿Que es displayReceptor?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Jul 2012 05:52 pm
Sí se conecta con nc.connect("rtmp://localhost:1935/prueba");
No he puesto ese código por no repetir, es identico al primero.

displayReceptor es un objeto VideoDisplay que he arrastrado al escenario para poder mostrar video.
Me acabo de dar cuenta que La función estadoStreamReceptor me la ejecuta dos veces.
La primera vez me da la salida: Netstream.Play.Reset y la segunda, Netstream.Play.Start

Por zeroSting

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Jul 2012 05:54 pm
Ok, VideoDisplay es un objeto de Flex (une especie de FLVPlayback) para reproducir video, y estoy casi seguro que no acepta que le metas un objeto video, sino que seguramente le tienes que setear el source o algo similar, revisa la dicumentación para esa clase, incluso creo que tenía un apartado para conectar a rtmp

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Jul 2012 11:18 pm
Lo he conseguido usando el control videodisplay de Flex 3.6 que permite el attachCamera.

El código completo que he usado es:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
minWidth="955" minHeight="600" layout="absolute">

<mx:Script>
<![CDATA[
import mx.core.Application;
import mx.controls.Alert;

public var nc:NetConnection;
private var netStream:NetStream;
private var camara:Camera;
private var microfono:Microphone;

protected function btnConectar_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
camara = Camera.getCamera();
microfono = Microphone.getMicrophone();
nc = new NetConnection();
nc.objectEncoding = ObjectEncoding.AMF0;
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.client = this;
nc.connect("rtmp://localhost:1935/prueba");

}
private function netStatusHandler(event:NetStatusEvent):void
{
if (event.info.level != "error")
{
lblEstado.text="Conectado";
conectaStream();
}
else
{
lblEstado.text=event.info.level;
}
}
private function conectaStream():void
{
netStream = new NetStream(nc);
netStream.client = Application.application;
camara = Camera.getCamera();
microfono = Microphone.getMicrophone();

//comprobamos si tenemos camara
if(camara != null){
netStream.attachCamera(camara);
display.attachCamera(camara);
}

//comprobamos si tenemos micro
if(microfono != null){
microfono.setLoopBack(false);
netStream.attachAudio(microfono);
}

netStream.receiveAudio(true);
netStream.publish("Prueba");
}


]]>
</mx:Script>

<mx:Panel id="panelWebcam" x="44" y="129" width="544" height="291" layout="absolute"
title="Videochat">
<mx:VideoDisplay id="display" x="43" y="10" width="320" height="200"/>
<mx:Button id="btnConectar" x="385" y="21" label="Conectar"
click="btnConectar_clickHandler(event)"/>
<mx:Label id="lblEstado" x="385" y="72" width="77" text="Estado:"/>
</mx:Panel>
</mx:Application>


Para ver el video publicado uso:
display.source= "rtmp://localhost:1935/prueba";

Por zeroSting

3 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.