我正在開發一個視頻聊天應用程序,並且我正在構建一項功能,在該功能中,啓動呼叫的人可以將呼叫轉換爲音頻呼叫。現在,接收器爲呼叫獲取鏈接,當他們加入呼叫時,應用程序獲取其攝像頭和麥克風並將其附加到網絡流。我想要的是,如果發起者如果在加入呼叫的接收者開始呼叫時呼叫將其相機關閉,則應用程序不應該獲取相機,因爲他們沒有視頻附加到網絡流。 現在我已經使用netstream.info.Videobytespersecond,但由於反向視頻和音頻沒有立即啓動,當接收者加入呼叫(有像3-4秒的延遲),該函數在呼叫開始時保持返回0無論網絡流是否附加了視頻。檢查視頻是否連接到netstream
這是我做過什麼
public function checkVideo():Number {
hey=_incomingStream.info.videoByteCount;
return hey;
}
if(_outgoingStream && _incomingStream!=null){
if(checkVideo()>0)
_outgoingStream.attachCamera(camera);
else
_outgoingStream.attachCamera(null);
它沒有工作。
接下來我讀了關於netstream.send()函數,所以我的想法是,當用戶發起呼叫時,他/她將在netstream中發送消息,如果用戶發起視頻呼叫,如果用戶發起了音頻呼叫,則爲false。然後,如果接收器加入,如果該標記爲假,則其相機將不會啓動,但如果該標記爲真,相機將啓動。
當我實施它時,它不起作用。我不知道我在執行時是否有錯誤。
if(camera && !muteCam)
{//Initate call
camera = setCameraQuality(camera);
yourVidHolder.attachCamera(camera);
if(_outgoingStream && _incomingStream==null){
_outgoingStream.attachCamera(camera);
_outgoingStream.send("flagVideo", true);
----------------------------------------------------------------------------------
public function flagV():Boolean
{
_incomingStream.client.flagVideo=function(flag:Boolean):void{
check=flag;
}
return check;
}
if(_outgoingStream && _incomingStream!=null){
if(checkVideo()>0)
_outgoingStream.attachCamera(camera);
else
_outgoingStream.attachCamera(null);
}
但我不能得到它的工作。任何人都可以幫我嗎? 也可能有更好的方法,我可以檢查netstream是否有一個視頻連接到它?