999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

IPTV播放器客戶端和服務端模塊設計

2016-04-29 00:44:03袁明磊陳業
軟件工程 2016年2期

袁明磊 陳業

摘 要:在IPTV播放器的開發過程中,一般用客戶端、服務器端架構來實現。本文主要對IPTV播放器客戶端和服務器端模塊進行了分析和設計,為IPTV客戶端和服務器端開發提供了參考。

關鍵詞:客戶端;服務器端;IPTV

中圖分類號:TP391 文獻標識碼:A

1 引言(Introduction)

IPTV是一種利用數據網絡進行音視頻數據傳輸的新型媒體技術。IPTV相比模擬電視具有良好的互動性,用戶可以根據自己的興趣進行內容選擇。隨著網絡技術的發展,IPTV勢必會成為未來家庭中的一種重要的業務形態。本文主要研究IPTV客戶端和服務器端模塊的設計。

2 客戶端模塊設計(Client-side module design)

播放器客戶端模塊主要完成如下功能:

(1)提供與播放相關的API供播放器應用層模塊調用,比如播放、暫停、跳轉等。

(2)封裝來自播放器應用層模塊的命令并以IPC的方式發送至播放器服務端模塊。

(3)接收來自播放器服務端模塊的通知,并通知給播放器應用層模塊。

播放器在播放音視頻時,同一時刻播放音視頻的個數主要受制于嵌入式設備上的解碼器個數(軟件解碼和硬件解碼)。一般情況下,嵌入式設備上都會有且只有一個硬解碼器存在,且為獨占式的,即有一個音視頻在基于硬件解碼正在播放時,另外一個音視頻是無法基于硬件解碼器播放的[1]。

但是,在設計播放器架構時我們卻可以做到預留添加軟件解碼器接口,以便未來應對多路音視頻同時播放的需求。而且,播放器應該可以做到同時支持幾個實例(相當于多個player)在運行,比如在播放本地視頻時,一個播放器實例正在播放用戶選中的視頻,此刻應該允許另外一個播放器實例負責獲取本地文件夾下的其他視頻的源文件信息(編碼信息、播放時長、視頻寬高、縮略圖等),這樣在退出正在播放的視頻時,用戶可以快速地預覽到其他視頻的源文件信息,讓用戶感覺速度很快,體驗很好[2]。

結合上述考慮,客戶端設計如圖1所示。IMediaPlayer為MediaPlayerClient和服務端RealPlayer的共同接口;MediaPlayerClient為播放器暴露給應用層的與播放相關的接口;CmdWrapper用于打包來自應用層的與播放相關的命令;CmdSender用于向播放器服務端發送來自客戶端的命令;EventQueue用于接受來自服務端的通知事件;PollThread用于輪詢EventQueue,并將每個Event派發給應用層。

3 服務端模塊設計(Server-side module design)

播放器服務端模塊主要完成如下功能:

(1)接收來自播放器客戶端模塊的命令,并進行播放相關處理。

(2)將播放器的相關播放狀態通知給播放器客戶端模塊。

(3)負責數據源獲取模塊、音視頻分離模塊、音頻同步模塊和音視頻輸出模塊的調度和管理。

(4)維護播放器的播放狀態機。

播放器服務端的主要設計類圖如圖2所示。IMediaPlayer為MediaPlayerClient和服務端RealPlayer的共同接口;MediaPlayerServer為播放器服務端的代理接口,充當播放器服務端對外門戶,來自客戶端的命令都必須經過其轉手派發給相應的某個RealPlayer實例,其內部保存一個RealPlaye實例鏈表;RealPlayer為播放器服務端核心管理類,與MediaPlayerClient一一對應,負責處理來自客戶端的命令、維護播放器狀態器切換、將播放器的狀態以Event的方式通知給播放器服務端,同時,也負責MediaSource、MediaDemux、DecoderBase和Render之間的調度;CmdQueue負責接收來自客戶端的命令;PollThread負責輪詢CmdQueue并將命令派發給RealPlayer進行處理;EventWrapper負責打包服務端通知給客戶端的Event;EventSender負責將Event發送給客戶端;DecoderBase為解碼器基類,HardewareDecoder為繼承自DecoderBase的硬解碼類,未來若是需要支持多路視頻播放的話,只需從DecoderBase派生一個類,并實現相關接口函數即可;MediaDemux為所有媒體格式分離器類的基類;MediaSource為所有協議(網絡或本地)的媒體源獲取類的基類;Render負責對解碼器解碼完成后的音頻幀和視頻幀進行渲染輸出。DecoderBase的某個派生類、MediaDemux的某個派生類、MediaSource的某個派生類和Render皆為MediaPlayerServer的成員變量[3,4]。

故而,播放器客戶端與服務端的交互設計如圖3所示,播放器整體上采取了C/S(客戶端/服務器)設計方式,即一個服務端進程可能會與多個客戶端進程并存。應用層模塊(LocalPlayer/Browser/…)和播放器客戶端模塊共處于客戶端進程,與播放器服務端模塊所處的服務端進程并存。當用戶使用遙控器操作控制播放器的時候,操作命令會通過客戶端模塊發送至服務端模塊;播放器服務端播放狀態發生改變時,服務端首先會將通知事件發送至客戶端模塊,然后由客戶端模塊將其傳送至應用層模塊。

4 結論(Conclusion)

本文對IPTV播放器的客戶端模塊和服務端模塊進行了設計。在實現客戶端和服務端模塊時,定義了播放器客戶端和服務端的播放接口類。

參考文獻(References)

[1] 代黔豫.IPTV的核心技術和主要應用[J].移動通信,2009,33

(2):84-87.

[2] 李季.基于嵌入式Linux的IPTV機頂盒媒體播放器的研究[D].

成都:天津大學,2008.

[3] 徐晟華.基于MPEG-4的嵌入式流媒體播放器的設計與實現

[D].鎮江:江蘇大學,2007.

[4] 曾愛華.IPTV系統架構及主要技術[J].通信技術,2010,43(3):

171-176.

作者簡介:

袁明磊(1985-),男,碩士,講師.研究領域:計算機應用.

主站蜘蛛池模板: 欧美日韩午夜| 蜜芽国产尤物av尤物在线看| 亚洲人成人伊人成综合网无码| 98精品全国免费观看视频| 欧美三级视频在线播放| 99精品高清在线播放| 999国内精品久久免费视频| 国产剧情国内精品原创| 六月婷婷综合| 亚洲国产成人精品无码区性色| 欧洲一区二区三区无码| 伊人久久婷婷五月综合97色| 看av免费毛片手机播放| 国产男女免费完整版视频| 久久99精品久久久久久不卡| 狠狠综合久久| 在线播放精品一区二区啪视频| 中国一级毛片免费观看| 免费国产黄线在线观看| 国产黑人在线| 亚瑟天堂久久一区二区影院| 色亚洲成人| 免费无码网站| 熟妇丰满人妻av无码区| 国产视频一区二区在线观看| 欧美日韩资源| 亚洲国产中文欧美在线人成大黄瓜 | 免费Aⅴ片在线观看蜜芽Tⅴ| 无码在线激情片| 国产麻豆精品在线观看| 国产精品视频猛进猛出| 免费Aⅴ片在线观看蜜芽Tⅴ| 色婷婷成人网| 成人夜夜嗨| 亚洲精品日产AⅤ| 人妻中文字幕无码久久一区| 亚洲一区国色天香| 亚洲男人在线天堂| 美女被操91视频| 国产美女一级毛片| 色成人综合| 亚洲日韩高清无码| 国产精品女主播| 天天色天天操综合网| 久久性妇女精品免费| 欧美日韩午夜| 中文字幕波多野不卡一区| 免费观看国产小粉嫩喷水| 1级黄色毛片| 久久精品丝袜高跟鞋| 综合亚洲色图| 欧美第九页| 国产白浆在线观看| 国产主播喷水| 激情乱人伦| 四虎国产精品永久在线网址| 自慰高潮喷白浆在线观看| 久久久久国产一级毛片高清板| 国产a网站| 亚洲精品男人天堂| 精品人妻AV区| 国产农村1级毛片| 亚洲精品天堂在线观看| 亚洲国产天堂在线观看| 国产激情无码一区二区APP| 91无码网站| 中文国产成人久久精品小说| 精品自窥自偷在线看| 亚洲h视频在线| 在线国产综合一区二区三区| 91香蕉视频下载网站| 久久午夜夜伦鲁鲁片无码免费| 国产精品美女免费视频大全| 就去吻亚洲精品国产欧美| 亚洲天堂自拍| 亚洲天堂免费在线视频| 日韩A∨精品日韩精品无码| 日本午夜精品一本在线观看| 亚洲天堂伊人| 免费av一区二区三区在线| 国产一级毛片在线| www精品久久|