Property startTransmit/stopTransmit not found on flash.net.NetStream

這是個很奇怪的現象,當我們在Android手機端air與PC端Flash Player建立P2P連接的時候,如果我們關閉手機端的連接,比如我們按下電源鍵按鈕,那麼PC端就會收到Property startTransmit not found on flash.net.NetStream”或者是屬性“stopTransmit ”沒有發現,查看NetStream的API文檔,並沒有相關內容,而實實在在的這個問題能夠100%復現,那我們在定義NetStream的client 端的時候定義這樣的屬性看看,會不會解決問題。

代碼如下

var oo:Object = new Object();
				oo.onPeerConnect = function(subscriber:NetStream):Boolean{
					trace("Callee connecting to media stream: " + subscriber.farID);
					
					var farStreamClient:Object = new Object();
					farStreamClient.stopTransmit = function(p1:Object,p2:Object):void{
						trace("stopTransmit called",p1,p2);
					}
					farStreamClient.startTransmit = function():void{
						trace("startTransmit called");
					}
					subscriber.client = farStreamClient;
					
					return true; 
				}
				outgoingStream.client = oo;

在輸出端outgoingStream的訂閱流上添加startTransmit屬性和stopTransmit屬性,重新編譯,打包,調試,測試,通過!


如果你重新定義子類extends NetStream,請接着看

outgoingStream是NetStream的實例,添加方式是.client,假如你定義了NetStream的子類ChildNetStream extends NetStream,並在ChildNetStream上添加startTransmit方法和stopTransmit方法,你會發現,當你建立P2P連接的時候,仍然還是提示錯誤,因爲只能通過client方式添加這兩個隱藏的屬性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章