專利名稱:實現網絡媒體同步視聽的方法、系統及用戶端的制作方法
技術領域:
本發明涉及網絡通信技術領域,具體的特別涉及一種實現網絡媒體同步視聽的方法、系統及用戶端。
背景技術:
網絡媒體播放器是一種不需要計算機本地硬盤保存媒體文件,就能夠直接從網絡中獲取媒體資源并進行實時播放的工具,因此不僅用戶操作方便,而且能夠節約本地資源。現有很多媒體編碼格式都支持邊下載邊播放的工作模式,在應用網絡媒體播放器播放網絡媒體時,網絡地址可以是URL(統一資源定位),也可以是點對點網絡技術P2P的網絡種子。以網絡音樂播放器為例,有些是利用P2P網絡讓用戶在線播放海量音樂,也有些是使用固定的音樂服務器穩定地向用戶提供服務,還有些通過搜索引擎獲取所需音樂的URL地址,從而實現在線播放的功能,使用戶能夠方便快捷地欣賞最新最全的音樂。
現有的網絡直播技術可以提供同步視聽的效果,例如參與P2P直播的所有用戶都能夠同步觀看同一頻道的相同視頻內容。在采用P2P方式進行視頻直播時,P2P的直播運營商設置一臺或多臺P2P種子服務器(如果分配了多臺種子服務器,則它們通常分布在不同的網段中,以便向用戶提供較高的帶寬);當一個新用戶接入到該網絡視頻時,系統在已有的在線節點中尋找部分與其較為接近的節點分配給該新用戶,節點類型可以是最快的網段的節點、最近的節點、隨機節點或者種子服務器等;在P2P數據傳輸過程中,可以將固定時間的視頻作為一塊數據包,每個節點向其它節點周期性交換數據塊的傳送情況,若本節點下載的數據包較慢,則主動從其它較快的節點上下載數據包,以便跟上視頻播放的進度;在P2P訪問中,系統會動態地保存速度快的節點的IP地址,以備在新用戶加入時,向其返回該IP地址來協助新用戶提高下載速率。應用P2P的方式來實現同步視聽時,用戶無法自主選擇需要的媒體內容,因為直播的視頻或音頻內容由內容提供商預先安排,因此用戶無法任意點播視頻內容。
現有的網絡媒體播放器在工作時,將本地計算機對顯卡或聲卡輸出的實時采樣作為輸入,并編碼發送到遠程用戶,以此來實現網絡媒體的實時同步共享,現有的網絡媒體播放器的工作流程如圖1所示,該圖1示出了在兩個用戶之間實現視聽同步的情況步驟101用戶A使用媒體播放器在本地計算機上播放網絡中的影音文件。
步驟102本地計算機的聲卡和顯卡在輸出影音文件信號的同時,對該信號進行采集。
步驟103將采集到的信號進行壓縮編碼后通過網絡傳輸至用戶B。
步驟104用戶B使用的本地計算機接收到該信號后對其進行解碼。
步驟105將解碼后的多媒體數據輸入本地計算機的聲卡或顯卡,實現用戶之間的同步視聽。
由上述對現有技術的描述可知,現有的網絡媒體播放器播放的媒體內容需要經過輸出后再采樣,使得媒體信號的質量下降;并且直接從聲卡讀取的媒體數據包括本地計算機上當前播放的所有聲音,因此可能包括雜音,導致無法消除本地計算機上其它應用的干擾;在用戶試圖與多個用戶同步視聽時,容易由于網絡用戶接入帶寬較小,造成視聽效果的瓶頸。
發明內容
本發明的目的在于提供一種實現網絡媒體同步視聽的方法,以克服現有技術中網絡媒體內容需要經過輸出采樣后再發送,從而導致媒體信號質量下降,同步視聽效果差的問題。
本發明的另一目的在于提供一種的實現網絡媒體同步視聽的系統,以克服現有系統中的網絡媒體內容經過輸出采樣后發送,導致媒體信號質量下降同步視聽效果差的問題。
本發明的又一目的在于提供一種用戶終端,以克服現有用戶終端之間同步視聽效果差的問題。
為解決上述技術問題,本發明提供如下技術方案一種實現網絡媒體同步視聽的方法,包括
主控用戶向加入同步視聽的受控用戶發送當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息;受控用戶根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作,實現與主控用戶同步視聽所述網絡媒體。
所述播放狀態信息包括持續播放、暫停播放、向前拖動播放、或向后拖動播放。
所述播放狀態信息為持續播放,所述受控用戶根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作包括受控用戶向所述網絡媒體地址對應的服務器發送獲取所述網絡媒體的請求,所述請求中包含該網絡媒體當前播放進度信息;所述服務器讀取該網絡媒體當前播放進度至結束時的內容,并將該內容發送至受控用戶;所述受控用戶根據接收到的內容持續播放所述網絡媒體。
所述主控用戶和受控用戶之間擴展了P2P功能,所述方法進一步包括主控用戶和受控用戶之間周期性發送數據更新消息,所述數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;所述主控用戶和受控用戶中下載進度慢的用戶根據所述數據更新消息,向下載進度快的用戶請求所述網絡媒體的后續內容;所述下載進度快的用戶將已下載的所述網絡媒體的后續內容發送至所述下載進度慢的用戶。
所述播放狀態信息為暫停播放,受控用戶根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作包括受控用戶停止向所述網絡媒體地址對應的服務器發送獲取所述網絡媒體的請求;所述網絡媒體地址對應的服務器停止向所述受控用戶發送網絡媒體內容;所述受控用戶從所述播放進度信息處暫停播放所述網絡媒體。
所述方法進一步包括
主控用戶和受控用戶之間停止周期性發送所述數據更新消息,且所述下載進度快的用戶停止將已下載的所述網絡媒體的后續內容發送至所述下載進度慢的用戶。
所述方法進一步包括主控用戶和受控用戶中的任意一方終止同步視聽所述網絡媒體。
一種實現網絡媒體同步視聽的系統,包括網絡媒體服務器,用于存放同步視聽的網絡媒體;主控用戶端,用于向加入同步視聽的受控用戶端發送當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息;受控用戶端,用于根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作,實現與主控用戶端同步視聽所述網絡媒體。
一種用戶端,包括發送控制信息單元,用于向加入同步視聽的其它用戶端發送當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息。
用戶端擴展了P2P功能,所述用戶端進一步包括發送更新消息單元,用于向加入同步視聽的其它用戶端周期性發送數據更新消息,所述數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;發送網絡媒體單元,用于所述用戶端的下載進度大于其它用戶端時,向其它用戶端發送已下載的網絡媒體;請求網絡媒體單元,用于所述用戶端的下載進度小于其它用戶端時,向其它用戶端請求所述網絡媒體。
一種用戶端,包括接收控制信息單元,用于接收其它用戶端發送的當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息;執行控制信息單元,用于根據網絡媒體地址和播放進度信息,執行播放狀態信息指示的操作,實現與其它用戶端同步視聽所述網絡媒體。
所述執行控制信息單元包括發送請求單元,用于向所述網絡媒體地址對應的服務器發送獲取所述網絡媒體的請求,所述請求中包含該網絡媒體當前播放進度信息;接收網絡媒體單元,用于接收所述服務器發送的網絡媒體。
用戶端擴展了P2P功能,所述用戶端進一步包括發送更新消息單元,用于向其它用戶端周期性發送數據更新消息,所述數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;發送網絡媒體單元,用于所述用戶端的下載進度大于其它用戶端時,向其它用戶端發送已下載的網絡媒體;請求網絡媒體單元,用于所述用戶端的下載進度小于其它用戶端時,向其它用戶端請求所述網絡媒體。
由以上本發明提供的技術方案可見,應用本發明實現網絡媒體同步視聽的方法,主控用戶無需將當前播放的網絡媒體內容輸出采樣后,再發送到受控用戶,而是通過將網絡媒體地址和播放信息發送給受控用戶,受控用戶根據網絡媒體地址和播放進度信息,執行播放狀態信息指示的持續播放、暫停播放等操作,使得用戶間可以靈活地同步視聽網絡媒體,達到良好的協同娛樂效果;進一步的,本發明實現同步視聽網絡媒體的用戶之間通過擴展的P2P功能,保證了各個用戶在組成的P2P網絡中同步視聽的流暢度提高,相應增強了系統的性能。
圖1為現有網絡媒體播放器的工作流程圖;圖2為本發明方法的第一實施例流程圖;圖3為本發明方法的第二實施例流程圖;圖4為本發明方法的第三實施例流程圖;圖5為本發明方法的第四實施例流程圖;圖6為本發明方法的第五實施例流程圖;
圖7為本發明方法的第六實施例流程圖;圖8為本發明方法的第七實施例流程圖;圖9為本發明系統的實施例框圖;圖10為本發明用戶端的第一實施例框圖;圖11為本發明用戶端的第二實施例框圖。
具體實施例方式
本發明的核心是提供一種實現網絡媒體同步視聽的方法,該方法中主控用戶向加入同步視聽的受控用戶發送當前播放的網絡媒體地址、播放進度信息和播放狀態信息;受控用戶根據網絡媒體地址和播放進度信息,執行播放狀態信息指示的操作,從而實現與主控用戶同步視聽同一網絡媒體。
為了使本技術領域的人員更好地理解本發明方案,并使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本發明作進一步詳細的說明。
本發明方法第一實施例的流程圖如圖2所示步驟201主控用戶向加入同步視聽的受控用戶發送當前播放的網絡媒體地址及播放信息。
其中,受控用戶可以向主控用戶發送加入同步視聽的請求,或者由主控用戶邀請受控用戶加入同步視聽。
具體的,播放信息包括播放狀態信息和播放進度信息。播放狀態信息包括持續播放、暫停播放、向前拖動播放、或向后拖動播放等;播放進度信息指網絡媒體當前播放的位置。
步驟202受控用戶根據網絡媒體地址和播放進度信息,執行播放狀態信息指示的操作,實現與主控用戶同步視聽網絡媒體。
特別的,當播放狀態信息為持續播放時,受控用戶向網絡媒體地址對應的服務器發送獲取網絡媒體的請求,該請求中包含該網絡媒體當前播放進度信息;服務器讀取該網絡媒體當前播放進度至結束時的內容,并將該內容發送至受控用戶;受控用戶根據接收到的內容持續播放該網絡媒體。
進一步的,主控用戶和受控用戶之間擴展了P2P功能,則主控用戶和受控用戶之間周期性發送數據更新消息,該數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;主控用戶和受控用戶中下載進度慢的用戶根據數據更新消息,向下載進度快的用戶請求網絡媒體的后續內容;下載進度快的用戶將已下載的網絡媒體的后續內容發送至下載進度慢的用戶。
特別的,播放狀態信息為暫停播放時,受控用戶停止向網絡媒體地址對應的服務器發送獲取網絡媒體的請求;網絡媒體地址對應的服務器停止向該受控用戶發送網絡媒體內容;受控用戶從播放進度信息處暫停播放該網絡媒體。
進一步的,主控用戶和受控用戶之間停止周期性發送所述數據更新消息,且下載進度快的用戶停止將已下載的網絡媒體的后續內容發送至下載進度慢的用戶。
特別的,主控用戶和受控用戶中的任意一方都可以終止同步視聽網絡媒體。
本發明方法第二實施例的流程圖如圖3所示,該實施例示出了兩個用戶之間持續播放某一網絡媒體資源,從而實現同步視聽的流程,其中由受控用戶B向主控用戶A發送加入同步視聽的請求步驟301主控用戶A從網絡媒體提供方點播、獲取并且實時播放某一網絡媒體資源。
步驟302受控用戶B主動向主控用戶A發送加入同步視聽的請求。
步驟303主控用戶A將當前播放的網絡媒體資源的網絡地址和當前播放進度等信息發送至受控用戶B。
步驟304受控用戶B根據該網絡媒體資源的網絡地址和當前播放進度信息向網絡媒體提供方請求該網絡媒體資源的當前播放內容。
具體的,當前播放進度信息通常為該網絡媒體資源的偏移信息,該偏移信息是對應的網絡媒體資源的偏移量。例如,該網絡媒體資源的大小為3M字節,且該網絡媒體播放到1M字節時對應的時間為50秒,若此時受控用戶B加入,則主控用戶A發送的偏移信息就是該網絡媒體資源在50秒處所對應內容的位置,即該網絡媒體資源的偏移量。
步驟305網絡媒體提供方根據該網絡媒體資源當前播放進度信息,發送該網絡媒體資源的當前播放內容到受控用戶B。
具體的,網絡媒體提供方根據步驟304中獲得的偏移信息,從該網絡媒體資源當前播放的偏移量處開始順序發送該網絡媒體資源到受控用戶B。
下面以用戶A和用戶B同步收聽網絡中的一首MP3歌曲為例,詳細說明第二實施例的實現過程。在MP3文件中包含多個順序的音頻數據幀,數據幀之間的采樣率和長度可以不同,但無論數據幀的長度為多少,每一數據幀對應的播放時間均為26ms,因此每個MP3音頻文件是由若干個26ms的數據幀組成,任意的播放時刻都對應了相關的數據幀。
用戶A通過搜索等途徑獲取了歌曲S的網絡鏈接地址“http://192.168.0.1/music/words.mp3”后,用戶A使用網絡音樂播放器根據該鏈接地址實時獲取并播放歌曲S;用戶B獲知用戶A當前的聽歌狀態后,向用戶A發送加入同步收聽歌曲S的請求;用戶A接受用戶B的請求后,向用戶B返回歌曲S的網絡地址“http://192.168.0.1/music/words.mp3”,以及用戶A當前收聽歌曲S的播放進度信息,假設歌曲S的大小為3M字節,而此時用戶A收聽到1M字節的數據幀處,則“1M”即為歌曲S的播放進度信息;用戶B收到歌曲S的網絡地址和播放進度信息后,向網絡地址“http://192.168.0.1/music/words.mp3”發送歌曲S的內容請求,該內容請求中攜帶歌曲S的當前播放進度信息“1M”和結束信息(這里的結束信息可以是歌曲S結尾處對應的3M,也可以是基于一定數目的數據幀的分批下載,例如每隔0.3M請求下載一次);網絡媒體提供方的服務器192.168.0.1根據收到的內容請求,從該服務器上讀取文件words.mp3從1M字節起到結束信息處的數據內容,并將該數據內容發送到用戶B;用戶B接收到數據內容后,即從歌曲S的1M字節處開始播放,并且在播放期間,用戶B可以自動從服務器上獲取該歌曲S的后續數據幀,實現持續并與用戶A同步播放該歌曲S。
本發明方法第三實施例的流程圖如圖4所示,該實施例示出了兩個用戶之間持續播放某一網絡媒體資源,從而實現同步視聽的流程,其中由主控用戶A邀請受控用戶B加入同步視聽步驟401主控用戶A從網絡媒體提供方點播、獲取并且實時播放某一網絡媒體資源。
步驟402主控用戶A邀請受控用戶B加入同步視聽,并將當前播放的網絡媒體資源的網絡地址和當前播放進度等信息發送至受控用戶B。
步驟403受控用戶B收到該邀請后返回接受該邀請的信息到主控用戶A(受控用戶B也可以選擇返回拒絕該邀請的信息到主控用戶A,從而結束同步視聽流程)。
步驟404受控用戶B根據該網絡媒體資源的網絡地址和當前播放進度信息向網絡媒體提供方請求該網絡媒體資源的當前播放內容。
步驟405網絡媒體提供方根據該網絡媒體資源當前播放進度信息,發送該網絡媒體資源的當前播放內容到受控用戶B。
當用戶A和用戶B同步收聽網絡中的一首MP3歌曲時,第三實施例的具體實現過程與第二實施例的具體實現過程類似,不同點僅在于用戶A邀請用戶B加入同步收聽,因此在此不再贅述。
本發明方法第四實施例的流程圖如圖5所示,該實施例示出了兩個用戶之中的受控用戶B從網絡媒體提供方獲得網絡媒體內容的速度較慢,影響正常播放時,通過擴展的P2P功能持續播放該網絡媒體,從而實現同步視聽的流程步驟501主控用戶A從網絡媒體提供方點播、獲取并且實時播放某一網絡媒體資源。
步驟502受控用戶B主動向主控用戶A發送加入同步視聽的請求(該步驟也可以是主控用戶A邀請受控用戶B加入同步視聽)。
步驟503主控用戶A將當前播放的網絡媒體資源的網絡地址和當前播放進度等信息發送至受控用戶B。
步驟504受控用戶B根據該網絡媒體資源的網絡地址和當前播放進度信息向網絡媒體提供方請求該網絡媒體資源的當前播放內容。
步驟505網絡媒體提供方根據該網絡媒體資源當前播放進度信息,發送該網絡媒體資源的當前播放內容到受控用戶B。
步驟506主控用戶A和受控用戶B之間周期性發送當前播放的網絡媒體資源的網絡地址、播放進度信息、播放狀態信息和下載進度信息到對方,將這些信息作為數據更新消息。
具體的,下載進度是指已經從網絡媒體提供方處下載的該網絡媒體資源的數據幀,為了播放的流暢,通常下載的數據幀總是領先于當前播放的數據幀。
步驟507受控用戶B根據周期性交換的數據更新消息向主控用戶A請求由于網絡故障等原因下載速度慢于播放速度的后續網絡媒體內容。
步驟508主控用戶A響應受控用戶B的請求,將已經下載的后續網絡媒體內容對應的數據幀發送給受控用戶B。
仍以用戶A和用戶B同步收聽網絡中的一首MP3歌曲為例,詳細說明第四實施例的實現過程。在該實現過程中,假設用戶B由于網絡故障或帶寬問題導致了下載進度慢于當前播放進度,而用戶A的下載速率正常。
用戶A通過搜索等途徑獲取了歌曲S的網絡鏈接地址“http://192.168.0.1/music/words.mp3”后,用戶A使用網絡音樂播放器根據該鏈接地址實時獲取并播放歌曲S;用戶B獲知用戶A當前的聽歌狀態后,向用戶A發送加入同步收聽歌曲S的請求;用戶A接受用戶B的請求后,向用戶B返回歌曲S的網絡地址“http://192.168.0.1/music/words.mp3”,以及用戶A當前收聽歌曲S的播放進度信息,假設歌曲S的大小為3M字節,而此時用戶A收聽到1M字節的數據幀處,則1M即為歌曲S的播放進度信息;用戶B收到歌曲S的網絡地址和播放進度信息后,向網絡地址“http://192.168.0.1/music/words.mp3”發送歌曲S的內容請求,該內容請求中攜帶歌曲S的當前播放進度信息“1M”和結束信息(這里的結束信息可以是歌曲S結尾處對應的3M,也可以是基于一定數目的數據幀的分批下載,例如每隔0.3M請求下載一次);
網絡媒體提供方的服務器192.168.0.1根據收到的內容請求,從該服務器上讀取文件words.mp3從1M字節起到結束信息處的數據內容,并將該數據內容發送到用戶B;用戶B接收到數據內容后,即從歌曲S的1M字節處開始播放,并且在播放期間,用戶B可以自動從服務器上獲取該歌曲S的后續數據幀;用戶A和用戶B周期性地向對方發送歌曲S的播放進度信息、播放狀態信息以及下載進度信息作為該歌曲S播放的數據更新消息;用戶B由于與服務器192.168.0.1的網絡故障原因導致從該服務器上下載歌曲S的進度慢于播放歌曲S的進度,因此用戶B根據數據更新消息向用戶A請求播放歌曲S所需要的后續數據幀,假設所請求的數據幀對應于歌曲S的1.6M-2.0M字節的數據內容;用戶A由于下載進度較好,因此接收到用戶B的請求后,將已經下載的歌曲S的1.6M-2.0M字節的數據內容發送給用戶B,從而保證了在用戶B網絡故障時實現與用戶A同步收聽歌曲S。
本發明方法第五實施例的流程圖如圖6所示,該實施例示出了兩個用戶之間持續播放某一網絡媒體一段時間后,暫停該網絡媒體的播放,從而實現同步視聽的流程步驟601主控用戶A暫停當前播放的網絡媒體資源時,同時發送該網絡媒體資源的地址,播放進度信息和暫停狀態信息等信息到受控用戶B。
步驟602受控用戶B收到主控用戶A發送的信息后,向網絡媒體提供方中斷請求該網絡媒體的后續內容。
特別的,當主控用戶A和受控用戶B之間擴展了P2P功能時,受控用戶B在向網絡媒體提供方中斷請求該網絡媒體后續內容的同時,也停止與主控用戶A之間交換后續的網絡媒體內容數據幀。
步驟603受控用戶B暫停該網絡媒體內容的播放,同時等待主控用戶A發送后續的播放狀態信息。
具體的,主控用戶A在暫停播放該網絡媒體內容一段時間后,可以向用戶B發送的播放狀態信息包括繼續播放的狀態信息、或停止播放的狀態信息、或向前拖動播放的狀態信息、或向后拖動播放的狀態信息等。
在該實施例五中,也可以由受控用戶B首先暫停當前網絡媒體的播放,并發送相關的控制信息到主控用戶A。
特別的,若受控用戶B首先停止當前網絡媒體的播放,則表示其主動退出當前同步視聽狀態,則受控用戶B向主控用戶A發送停止同步的狀態信息,主控用戶A不再向受控用戶B發送后續播放狀態信息,并且若兩個用戶之間擴展了P2P功能,則主控用戶A也同時停止向受控用戶B發送該網絡媒體數據幀的同步更新消息。
仍然以用戶A和用戶B同步收聽網絡中的一首MP3歌曲為例,詳細說明第五實施例的實現過程。
用戶A與用戶B在持續同步收聽了歌曲S一段時間后,用戶A暫停播放歌曲S,同時向用戶B發送如下控制信息歌曲S的網絡地址“http://192.168.0.1/music/words.mp3”,歌曲S當前的播放進度信息(假設用戶A當前收聽到歌曲S的2M字節內容處,則將信息“2M”作為播放進度信息),以及歌曲S當前的播放狀態信息(用戶A當前暫停播放該歌曲S,因此該播放狀態信息為停止播放);用戶B收到用戶A發送的控制信息后,從該歌曲S的播放進度信息中獲知,用戶A在歌曲S的2M內容處暫停了播放,因此用戶B不再向網絡媒體提供方的服務器192.168.0.1請求該歌曲S的后續內容;若用戶A和用戶B之間擴展了P2P功能,則用戶B除了停止向服務器192.168.0.1請求歌曲S的后續內容外,同時停止與用戶A交換該歌曲S的2M字節內容后的數據幀的更新消息;用戶A和用戶B同時暫停播放歌曲S,同時用戶B等待用戶A發送歌曲S的后續播放狀態信息,包括繼續播放歌曲S、或停止播放歌曲S、或向前拖動播放歌曲S、或向后拖動播放歌曲S。
本發明方法第六實施例的流程圖如圖7所示,該實施例示出了三個用戶之間通過P2P功能持續播放某一網絡媒體,從而實現三個用戶之間同步視聽的流程,其中受控用戶C從網絡媒體提供方獲得網絡媒體內容的速度較慢
步驟701主控用戶A從網絡媒體提供方點播、獲取并且實時播放某一網絡媒體資源。
步驟702受控用戶B主動向主控用戶A發送加入同步視聽的請求(該步驟也可以是主控用戶A邀請受控用戶B加入同步視聽)。
步驟703主控用戶A將當前播放的網絡媒體資源的網絡地址和當前播放進度等信息發送至受控用戶B。
步驟704受控用戶B根據該網絡媒體資源的網絡地址和當前播放進度信息向網絡媒體提供方請求該網絡媒體資源的當前播放內容。
步驟705網絡媒體提供方根據該網絡媒體資源當前播放進度信息,發送該網絡媒體資源的當前播放內容到受控用戶B。
步驟706主控用戶A和受控用戶B之間周期性發送當前播放的網絡媒體資源的網絡地址、播放進度信息、播放狀態信息和下載進度信息到對方,將這些信息作為數據更新消息。
步驟707受控用戶B根據周期性交換的數據更新消息向主控用戶A請求由于網絡故障等原因下載速度慢于播放速度的后續網絡媒體內容。
步驟708主控用戶A響應受控用戶B的請求,將已經下載的后續網絡媒體內容對應的數據幀發送給受控用戶B。
步驟709受控用戶C主動向主控用戶A發送加入同步視聽的請求(該步驟也可以是主控用戶A邀請受控用戶C加入同步視聽)。
步驟710主控用戶A將當前播放的網絡媒體資源的網絡地址、當前播放進度信息、當前同步視聽的主控用戶A和受控用戶B的網絡地址和端口發送至受控用戶C。
步驟711主控用戶A、受控用戶B和受控用戶C之間周期性發送當前播放的網絡媒體資源的網絡地址、播放進度信息、播放狀態信息和下載進度信息,并將這些信息作為數據更新消息。
步驟712受控用戶C根據周期性交換的數據更新消息向主控用戶A和受控用戶B請求由于網絡故障等原因下載速度慢于播放速度的后續網絡媒體內容。
步驟713主控用戶A和受控用戶B響應受控用戶C的請求,將已經下載的后續網絡媒體內容對應的數據幀發送給受控用戶C。
三個以上的用戶持續播放某一網絡媒體,從而實現同步視聽的步驟和過程與上述實施例六類似,在此不再贅述。
以用戶A、用戶B和用戶C同步收聽網絡中的一首MP3歌曲為例,詳細說明第六實施例的實現過程。在該實現過程中,假設用戶C由于網絡故障或帶寬問題導致了下載進度慢于當前播放進度。
用戶A通過搜索等途徑獲取了歌曲S的網絡鏈接地址“http://192.168.0.1/music/words.mp3”后,用戶A使用網絡音樂播放器根據該鏈接地址實時獲取并播放歌曲S;用戶B獲知用戶A當前的聽歌狀態后,向用戶A發送加入同步收聽歌曲S的請求;用戶A接受用戶B的請求后,向用戶B返回歌曲S的網絡地址“http://192.168.0.1/music/words.mp3”,以及用戶A當前收聽歌曲S的播放進度信息,假設歌曲S的大小為3M字節,而此時用戶A收聽到1M字節的數據幀處,則1M即為歌曲S的播放進度信息;用戶B收到歌曲S的網絡地址和播放進度信息后,向網絡地址“http://192.168.0.1/music/words.mp3”發送歌曲S的內容請求,該內容請求中攜帶歌曲S的當前播放進度信息“1M”和結束信息;網絡媒體提供方的服務器192.168.0.1根據收到的內容請求,從該服務器上讀取文件words.mp3從1M字節起到結束信息處的數據內容,并將該數據內容發送到用戶B;用戶B接收到數據內容后,即從歌曲S的1M字節處開始播放,并且在播放期間,用戶B可以自動從服務器上獲取該歌曲S的后續數據幀;用戶A和用戶B周期性地向對方發送歌曲S的播放進度信息、播放狀態信息以及下載進度信息作為該歌曲S播放的數據更新消息;用戶B由于與服務器192.168.0.1的網絡故障原因導致從該服務器上下載歌曲S的進度慢于播放歌曲S的進度,因此用戶B根據數據更新消息向用戶A請求播放歌曲S所需要的后續數據幀,假設所請求的數據幀對應于歌曲S的1.5M-2.0M字節的數據內容;用戶A由于下載進度較好,因此接收到用戶B的請求后,將已經下載的歌曲S的1.5M-2.0M字節的數據內容發送給用戶B,從而保證了在用戶B網絡故障時實現與用戶A同步收聽歌曲S;用戶C獲知用戶A當前的聽歌狀態后,向用戶A發送加入同步收聽歌曲S的請求;用戶A接受用戶C的請求后,向用戶C返回歌曲S的網絡地址“http://192.168.0.1/music/words.mp3”,用戶A當前收聽歌曲S的播放進度信息,假設此時用戶A收聽到1.5M字節的數據幀處,則1.5M即為歌曲S的播放進度信息,同時還向用戶C返回用戶A與用戶B的網絡地址和端口信息;用戶A、用戶B和用戶C之間周期性地發送歌曲S的播放進度信息、播放狀態信息以及下載進度信息作為該歌曲S播放的數據更新消息;用戶C由于與服務器192.168.0.1的網絡故障原因導致從該服務器上下載歌曲S的進度慢于播放歌曲S的進度,因此用戶C根據數據更新消息向用戶A和用戶B中下載進度快于自己的用戶請求播放歌曲S所需要的后續數據幀,假設所請求的數據幀對應于歌曲S的2.0M-2.5M字節的數據內容;用戶A由于下載進度較好,因此接收到用戶C的請求后,將已經下載的歌曲S的2.0M-2.5M字節的數據內容發送給用戶C,從而保證了在用戶C網絡故障時實現與用戶A和用戶B同步收聽歌曲S。
本發明方法第七實施例的流程圖如圖8所示,該實施例示出了三個用戶之間形成了封閉的P2P網絡,它們持續播放某一網絡媒體一段時間后暫停播放該網絡媒體,從而實現同步視聽的流程步驟801主控用戶A暫停當前播放的網絡媒體資源時,同時向受控用戶B和受控用戶C發送該網絡媒體資源的地址、播放進度信息和暫停狀態信息等信息。
步驟802受控用戶B和受控用戶C收到主控用戶A發送的信息后,向網絡媒體提供方中斷請求該網絡媒體的后續內容,同時停止用戶之間發送的網絡媒體數據幀的同步更新消息。
步驟803受控用戶B和受控用戶C暫停該網絡媒體內容的播放,同時等待主控用戶A發送后續的播放狀態信息。
具體的,主控用戶A在暫停播放該網絡媒體內容一段時間后,可以向用戶B和用戶C發送的播放狀態信息包括繼續播放的狀態信息、或停止播放的狀態信息、或向前拖動播放的狀態信息、或向后拖動播放的狀態信息等。
在該實施例七中,也可以由受控用戶B或受控用戶C中的任意一個首先暫停當前網絡媒體的播放,并發送相關的控制信息到其它用戶。
特別的,若受控用戶B或受控用戶C首先停止當前網絡媒體的播放,則表示其主動退出當前同步視聽狀態,則該受控用戶向主控用戶A發送停止同步的狀態信息,主控用戶A不再向該受控用戶發送后續播放狀態信息。
三個以上的用戶暫停某一網絡媒體的播放,從而實現同步視聽的步驟和過程與上述實施例七類似,在此不再贅述。
仍然以用戶A、用戶B和用戶C同步收聽網絡中的一首MP3歌曲為例,詳細說明第七實施例的實現過程。
用戶A、用戶B和用戶C在持續同步收聽了歌曲S一段時間后,用戶A暫停播放歌曲S,同時向用戶B和用戶C發送如下控制信息歌曲S的網絡地址“http://192.168.0.1/music/words.mp3”,歌曲S當前的播放進度信息(假設用戶A當前收聽到歌曲S的2M字節內容處,則將信息“2M”作為播放進度信息),以及歌曲S當前的播放狀態信息(用戶A當前暫停播放該歌曲S,因此該播放狀態信息為暫停播放);用戶B和用戶C收到用戶A發送的控制信息后,從該歌曲S的播放進度信息中獲知,用戶A在歌曲S的2M內容處暫停了播放,因此用戶B和用戶C不再向網絡媒體提供方的服務器192.168.0.1請求該歌曲S的后續內容,并且同時停止相互之間交換該歌曲S的2M字節內容后的數據幀的更新消息;用戶A、用戶B和用戶C同時暫停播放歌曲S,同時用戶B和用戶C等待用戶A發送歌曲S的后續播放狀態信息,包括繼續播放歌曲S、或停止播放歌曲S、或向前拖動播放歌曲S、或向后拖動播放歌曲S。
本發明實現網絡媒體同步視聽的系統的實施例框圖如圖9所示該系統包括網絡媒體服務器910,用于存放同步視聽的網絡媒體;主控用戶端920,用于向加入同步視聽的受控用戶發送當前播放的網絡媒體地址及播放信息,該播放信息包括播放進度信息和播放狀態信息;受控用戶端930,用于根據網絡媒體地址和播放進度信息,執行播放狀態信息指示的操作,實現與主控用戶同步視聽所述網絡媒體。
本發明用戶端的第一實施例框圖如圖10所示該用戶端包括發送控制信息單元S10,用于向加入同步視聽的其它用戶端發送當前播放的網絡媒體地址及播放信息,該播放信息包括播放進度信息和播放狀態信息;發送更新消息單元S20,用于向加入同步視聽的其它用戶端周期性發送數據更新消息,該數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;發送網絡媒體單元S30,用于當該用戶端的下載進度大于其它用戶端時,向其它用戶端發送已下載的網絡媒體;請求網絡媒體單元S40,用于當用戶端的下載進度小于其它用戶端時,向其它用戶端請求該網絡媒體。
本發明用戶端的第二實施例框圖如圖11所示該用戶端包括接收控制信息單元S50,用于接收其它用戶端發送的當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息;執行控制信息單元S60,用于根據網絡媒體地址和播放進度信息,執行播放狀態信息指示的操作,實現與其它用戶端同步視聽所述網絡媒體;發送更新消息單元S70,用于向其它用戶端周期性發送數據更新消息,所述數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;發送網絡媒體單元S80,用于該用戶端的下載進度大于其它用戶端時,向其它用戶端發送已下載的網絡媒體;請求網絡媒體單元S90,用于該用戶端的下載進度小于其它用戶端時,向其它用戶端請求所述網絡媒體。
其中,執行控制信息單元S60包括發送請求單元S61,用于向網絡媒體地址對應的服務器發送獲取該網絡媒體的請求,該請求中包含該網絡媒體當前播放進度信息;接收網絡媒體單元S62,用于接收服務器發送的網絡媒體。
由以上本發明提供的實施例可知,應用本發明實現網絡媒體同步視聽的方法,主控用戶通過將網絡媒體地址和播放信息發送給受控用戶,受控用戶根據網絡媒體地址和播放進度信息,執行播放狀態信息指示的持續播放、暫停播放等操作,使得用戶間可以靈活地同步視聽網絡媒體,達到良好的協同娛樂效果,并且本發明實現同步視聽的用戶之間通過擴展的P2P功能,提高了同步視聽的流暢度,相應增強了系統的性能。
雖然通過實施例描繪了本發明,本領域普通技術人員知道,本發明有許多變形和變化而不脫離本發明的精神,希望所附的權利要求包括這些變形和變化而不脫離本發明的精神。
權利要求
1.一種實現網絡媒體同步視聽的方法,其特征在于,包括主控用戶向加入同步視聽的受控用戶發送當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息;受控用戶根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作,實現與主控用戶同步視聽所述網絡媒體。
2.根據權利要求1所述的方法,其特征在于,所述播放狀態信息包括持續播放、暫停播放、向前拖動播放、或向后拖動播放。
3.根據權利要求2所述的方法,其特征在于,所述播放狀態信息為持續播放,所述受控用戶根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作包括受控用戶向所述網絡媒體地址對應的服務器發送獲取所述網絡媒體的請求,所述請求中包含該網絡媒體當前播放進度信息;所述服務器讀取該網絡媒體當前播放進度至結束時的內容,并將該內容發送至受控用戶;所述受控用戶根據接收到的內容持續播放所述網絡媒體。
4.根據權利要求3所述的方法,其特征在于,所述主控用戶和受控用戶之間擴展了P2P功能,所述方法進一步包括主控用戶和受控用戶之間周期性發送數據更新消息,所述數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;所述主控用戶和受控用戶中下載進度慢的用戶根據所述數據更新消息,向下載進度快的用戶請求所述網絡媒體的后續內容;所述下載進度快的用戶將已下載的所述網絡媒體的后續內容發送至所述下載進度慢的用戶。
5.根據權利要求3或4所述的方法,其特征在于,所述播放狀態信息為暫停播放,受控用戶根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作包括受控用戶停止向所述網絡媒體地址對應的服務器發送獲取所述網絡媒體的請求;所述網絡媒體地址對應的服務器停止向所述受控用戶發送網絡媒體內容;所述受控用戶從所述播放進度信息處暫停播放所述網絡媒體。
6.根據權利要求5所述的方法,其特征在于,所述方法進一步包括主控用戶和受控用戶之間停止周期性發送所述數據更新消息,且所述下載進度快的用戶停止將已下載的所述網絡媒體的后續內容發送至所述下載進度慢的用戶。
7.根據權利要求1所述的方法,其特征在于,所述方法進一步包括主控用戶和受控用戶中的任意一方終止同步視聽所述網絡媒體。
8.一種實現網絡媒體同步視聽的系統,其特征在于,包括網絡媒體服務器,用于存放同步視聽的網絡媒體;主控用戶端,用于向加入同步視聽的受控用戶端發送當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息;受控用戶端,用于根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作,實現與主控用戶端同步視聽所述網絡媒體。
9.一種用戶端,其特征在于,包括發送控制信息單元,用于向加入同步視聽的其它用戶端發送當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息。
10.根據權利要求9所述的用戶端,其特征在于,用戶端擴展了P2P功能,所述用戶端進一步包括發送更新消息單元,用于向加入同步視聽的其它用戶端周期性發送數據更新消息,所述數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;發送網絡媒體單元,用于所述用戶端的下載進度大于其它用戶端時,向其它用戶端發送已下載的網絡媒體;請求網絡媒體單元,用于所述用戶端的下載進度小于其它用戶端時,向其它用戶端請求所述網絡媒體。
11.一種用戶端,其特征在于,包括接收控制信息單元,用于接收其它用戶端發送的當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息;執行控制信息單元,用于根據網絡媒體地址和播放進度信息,執行播放狀態信息指示的操作,實現與其它用戶端同步視聽所述網絡媒體。
12.根據權利要求11所述的用戶端,其特征在于,所述執行控制信息單元包括發送請求單元,用于向所述網絡媒體地址對應的服務器發送獲取所述網絡媒體的請求,所述請求中包含該網絡媒體當前播放進度信息;接收網絡媒體單元,用于接收所述服務器發送的網絡媒體。
13.根據權利要求12所述的用戶端,其特征在于,用戶端擴展了P2P功能,所述用戶端進一步包括發送更新消息單元,用于向其它用戶端周期性發送數據更新消息,所述數據更新消息包含網絡媒體地址、播放進度信息、播放狀態信息以及下載進度信息;發送網絡媒體單元,用于所述用戶端的下載進度大于其它用戶端時,向其它用戶端發送已下載的網絡媒體;請求網絡媒體單元,用于所述用戶端的下載進度小于其它用戶端時,向其它用戶端請求所述網絡媒體。
全文摘要
本發明公開了一種實現網絡媒體同步視聽的方法,包括主控用戶向加入同步視聽的受控用戶發送當前播放的網絡媒體地址及播放信息,所述播放信息包括播放進度信息和播放狀態信息;受控用戶根據所述網絡媒體地址和播放進度信息,執行所述播放狀態信息指示的操作,實現與主控用戶同步視聽所述網絡媒體。本發明還公開了一種實現網絡媒體同步視聽的系統和用戶端。應用本發明實現網絡媒體同步視聽的方法,主控用戶無需將當前播放的網絡媒體內容輸出采樣后,再發送到受控用戶,而是通過將網絡媒體地址和播放信息發送給受控用戶,使受控用戶執行播放狀態信息指示的操作,從而使得用戶間可以靈活地同步視聽網絡媒體,達到良好的協同娛樂效果。
文檔編號H04N7/52GK101072359SQ20071010796
公開日2007年11月14日 申請日期2007年5月18日 優先權日2007年5月18日
發明者胡鵬, 王新亮, 周軍 申請人:騰訊科技(深圳)有限公司