新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Windows CE的嵌入式網絡收音機

        基于Windows CE的嵌入式網絡收音機

        作者: 時間:2011-01-17 來源:網絡 收藏

        2. 3 應用程序開發
        Windows CE應用程序使用Embedded Visual C++集成開發環境,并且需要具體平臺的SDK支持。本系統利用Platform Builder定制生成的SDK直接進行開發,有效地提高了開發效率。目前,主要流媒體協議分為支持實時流式傳輸的RTSP協議和支持順序流式傳輸的 MMS協議。如rtsp://real.enr.cn:554/encoder/cnr2(中央人民廣播電臺2臺)的地址格式,這類網絡數字廣播采用 RTSP協議來進行數據傳輸;如mms://windows_media_server/sample.asf的地址格式,這類網絡數字廣播采用MMS協議來進行數據傳輸。
        為了盡可能接收到所有網絡電臺,系統設計兼容兩種傳輸協議。針對系統的特殊性,適用于該方案的系統設計框圖如圖3所示。系統通過
        解析用戶輸入的網絡電臺網址,分辨出所訪問電臺支持的流媒體傳輸協議,針對兩類不同協議作出實時響應,接收數據并播放。
        d.JPG

        2.3.1 實時流式傳輸RTSP協議
        實時流協議RTSP,用于建立和控制時間同步的連續媒體流,以及控制具有實時特征的數據發送。RTSP提供控制機制,能夠處理更高層的問題(例如會話建立和注冊),在體系結構上工作在RTP、TCP、UDP等協議的上層。正因為如此,RTSP可以很好地利用人們對現有工業標準的改善和提高,而不需要額外的優化工作。
        本系統采用開源軟件LIVE庫來實現RTP/RTCP協議,包括RTP/RTCP會話的建立、數據的接收。其主要任務是解析RTSP協議,通過 DESCRI-BE、SETUP、PLAY請求來獲得數據格式,并將RTP包解包獲得MP3幀數據,寫入數據接收緩沖區。
        LIVE庫僅包含4個基本的類:BasicUsageEnvironment、UsageEnvironment、groupsock以及 livemedia。BasicUsageEnvironment和UsageEnvironment負責任務的調度和環境的配置;groupsock負責socks套接字的創建以及相應信息(詢問信息和數據信息)的發送接收;Live-
        media是整個工程的核心,負責rtsp、session(subsession)和rtcpinstance的運轉。
        在數據傳輸過程中,LIVE庫根據RTSP協議來建立會話描述。RTSP會話的建立分為以下幾個步驟:
        ①建立使用環境對象,創建客戶端。
        ②由RTSPClient對象向服務器發送OPTION消息并接收回應。
        ③發送DESCRIBE請求,并解析回應。
        ④根據SDPDescription在MediaSession中創建MediaSession對象。
        ⑤配置所有子會話對象。
        ⑥由RTSPClient對象向服務器發送SETUP消息并接收回應。
        ⑦由RTSPClient對象向服務器發送PLAY消息并接收回應。
        接收到的經過壓縮編碼的MP3數據只有經過解碼后發送給設備,才能實現解碼播放。為了縮短開發周期,本文使用LIBMAD庫來實現MP3解碼。LIBMAD庫是一個開源的高精度MPEG音頻解碼庫,支持MPEG-Layer I、MPEG-Layer II和MPEG-Layer III。LIBMAD提供24位的PCM輸出,完全是定點計算,非常適合應用在沒有浮點支持的平臺上。使用LIBMAD提供的一系列API(應用程序編程接口),就可以非常簡單地實現MP3數據解碼。
        為了使系統接收到的音頻流數據能夠正常解碼并播放,系統采用雙線程(數據接收線程和音樂播放線程)、雙緩沖(數據接收緩沖和音樂播放緩沖)操作。兩個線程并發運行,且音樂播放線程運行速度較慢。如果網絡速度較快,數據接收線程的接收緩沖區已滿,而當前音樂播放線
        程正在播放音樂,那么數據接收線程必須停止接收數據。如果不讓數據接收線程進入等待狀態,它會一直輪詢音樂播放線程觀察其是否需要數據。簡單的輪詢會浪費 CPU資源,在這種情況下,有必要讓數據接收線程進入等待狀態。本系統使用信號量機制來動態控制線程的運行,有效地提高程序執行效率。
        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        關鍵詞: 音頻 嵌入式

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 金坛市| 瑞昌市| 泰州市| 合川市| 贡山| 安顺市| 天峻县| 长丰县| 临猗县| 化州市| 巴里| 汤阴县| 永寿县| 青川县| 察哈| 屏东市| 克什克腾旗| 湖州市| 淮滨县| 高密市| 上饶县| 加查县| 凤山市| 石屏县| 荔波县| 綦江县| 即墨市| 黄大仙区| 绥德县| 芜湖县| 台南市| 永福县| 台北市| 罗源县| 阿勒泰市| 清涧县| 育儿| 石狮市| 蓝田县| 柏乡县| 万年县|