actionscript-3 flex flash-media-server cirrus

actionscript 3 - Error de Adobe Cirrus en Direct Connect "Propiedad startTransmit no encontrada en flash.net.NetStream"



actionscript-3 flex (5)

El error:

ReferenceError: Error #1069: Property startTransmit not found on flash.net.NetStream and there is no default value.

He jugado con Cirrus muchas veces antes y todavía no he visto este error antes. Pero ahora no puedo hacer que desaparezca.

Mi p2p Direct Connect funciona muy bien. Pero cada vez que veo este error emergente. Lanza una excepción. No puedo entender dónde está sucediendo exactamente.

¿Alguien encontró esto antes? ¿Alguna idea de dónde debería mirar?


En la secuencia de comandos del lado del servidor, probablemente (u otra persona) haya configurado la aplicación, de modo que devuelva la llamada a una función, esta vez es startTransmit, y no se gestiona en el lado del cliente. Elimine el código del servidor, o agregue un valor predeterminado, o agregue una función a su código.

En mi programa similar, tuve que agregar la función a mi código (en mi caso no fue ''startTransmit''):

if ("NetConnection.Connect.Success" == e.info.code) { netConnection.client=new Object(); netConnection.client.startTransmit=startTransmit; //no columns! }

donde startTransmit es

private function startTransmit():Boolean{ return true; }


¿Estás enviando videos h264? Creo que tiene que ver con eso ...

Si agrega

public function startTransmit($p1:*,$p2:*):void{ } public function stopTransmit():void{ }

donde tengas tu conexión de servidor de medios debería funcionar bien, al menos me sirve :)


Hay otro netstream distinto de receiveStream y sendStream. Debe establecer las funciones startTransmit y stopTransmit en las llamadas netstream, algo como esto:

sendStreamClient.onPeerConnect = function(callerns:NetStream): Boolean{ var farStreamClient:Object=new Object(); farStreamClient.stopTransmit=function($p1:*,$p2:*):void{ trace("-------------farStream stopTransmit called!",$p1,$p2); } farStreamClient.startTransmit=function():void{ trace("-------------farStream startTransmit called!"); } callerns.client=farStreamClient; }


Cada objeto del cliente debe tener definidas las siguientes funciones.

client.stopTransmit=function($p1:*,$p2:*):void{ trace("stopTransmit called",$p1,$p2); } client.startTransmit=function():void{ trace("startTransmit called"); }

Por ejemplo, onPeerConnect en la función onPeerConnect :

sendStream.client = new Object(); sendStreamClient.onPeerConnect = function(subscriber:NetStream): Boolean{ var client:Object=new Object(); client.stopTransmit=function($p1:*,$p2:*):void{ trace("stopTransmit called",$p1,$p2); } client.startTransmit=function():void{ trace("startTransmit called"); } subscriber.client=farStreamClient; }

Además, estos deben establecerse en la propiedad del client su servidor de correo electrónico:

sendStreamClient.client.stopTransmit=function($p1:*,$p2:*):void{ trace("stopTransmit called",$p1,$p2); } sendStreamClient.client.startTransmit=function():void{ trace("startTransmit called"); }

Y deben configurarse en la propiedad del client su cuenta de crédito.


El problema no está en el servidor AMS o Red5. Incluso la transmisión de un video en P2P desde un dispositivo Android desencadena el mismo error. La solución funcionó. En realidad, el stopTransmit () envía un booleano y un entero. Sería increíble saber lo que significan. He abierto un error en la base de datos de adobe para que se documente o elimine. Por favor vote: https://bugbase.adobe.com/index.cfm?event=bug&id=3844856