Ошибка Adobe Cirrus в Direct Connect. «Свойство startTransmit не найдено на flash.net.NetStream» - PullRequest
3 голосов
/ 13 марта 2012

Ошибка:

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

Я много раз играл с циррусом и до сих пор не видел эту ошибку раньше.Но теперь я не могу заставить его уйти.

Мой p2p Direct connect отлично работает, просто отлично.Но каждый раз, когда я вижу эту ошибку всплывающим.Это исключение.Я не могу понять, где именно это происходит.

Кто-нибудь сталкивался с этим раньше?Любые идеи, где я должен искать?

Ответы [ 5 ]

3 голосов
/ 01 ноября 2013

Для каждого объекта клиента должны быть определены следующие функции.

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

Например, установите их в функции 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;
}

Кроме того, они должны быть установленыв свойстве client вашего sendStreamClient:

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

И они должны быть установлены в свойстве client вашего recieveStreamClient.

1 голос
/ 23 апреля 2012

В сценарии на стороне сервера вы, вероятно (или кто-то еще) настроили приложение, чтобы оно вызывало функцию - на этот раз это startTransmit- и не обрабатывалось на стороне клиента. Удалите код с сервера, добавьте значение по умолчанию или добавьте функцию к своему коду.

В моей аналогичной программе мне пришлось добавить функцию в мой код (в моем случае это не было startTransmit):

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

где startTransmit

private function startTransmit():Boolean{
    return true;
}
0 голосов
/ 29 октября 2014

Проблема не на сервере AMS или Red5.Даже передача видео по P2P с устройства Android вызывает ту же ошибку.Решение сработало.На самом деле stopTransmit () отправляет логическое и целое число.Было бы удивительно узнать, что они имеют в виду.Я открыл ошибку на базе ошибок Adobe, чтобы ее можно было документировать или удалить.Пожалуйста, проголосуйте: https://bugbase.adobe.com/index.cfm?event=bug&id=3844856

0 голосов
/ 30 декабря 2012

Существует другой netstream, отличный от receiveStream и sendStream.Вы должны установить функции startTransmit и stopTransmit для абонентов netstream, что-то вроде этого:

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;
}
0 голосов
/ 05 июля 2012

Вы отправляете видео h264? Я думаю, что это связано с этим ...

Если вы добавите

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

}

public function stopTransmit():void{

}

там, где у вас есть соединение с медиасервером, оно должно работать нормально, по крайней мере, для меня:)

...