<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計應用 > 基于Symbian平臺的流媒體播放器設(shè)計與實現(xiàn)

          基于Symbian平臺的流媒體播放器設(shè)計與實現(xiàn)

          作者: 時間:2011-05-27 來源:網(wǎng)絡(luò) 收藏

            其播放流程如圖3 所示。首先初始化CMdaAudioOutputStream類。初始化完成后,Multimedia 框架會調(diào)用MaoscOpenComplete( ) 回調(diào)函數(shù),指出音頻輸出已經(jīng)可用。該框架所給出的參數(shù)是一個出錯值,它指出初始化是否成功。如果成功,則給出KErrNONe。此處可以設(shè)置采樣率和音量等。成功初始化后,則可以在客戶端調(diào)用PlayL( ) 函數(shù)來播放音頻數(shù)據(jù)流。它調(diào)用FillBufferL( ) 函數(shù)把數(shù)據(jù)往緩沖區(qū)填充,并使用CMdaAudioOutputStream: : WriteL( const TdesC8&aData) 進行播放。其中參數(shù)aData 為緩沖區(qū)數(shù)據(jù)。

            WriteL( ) 是一個異步函數(shù)。當復制了描述符aData中的數(shù)據(jù)到音頻硬件之后,該框架將調(diào)用MMdaAudioOutputStreamCallback: : MaoscBufferCopied( ) 回調(diào)方法,通知客戶端應用已收到aData 并將其復制到播放流。此時,可以再調(diào)用FillBufferL( ) 函數(shù)繼續(xù)填充緩沖區(qū),從而實現(xiàn)連續(xù)不斷地流播放。

          流式播放流程圖

          圖3 流式播放流程圖

            3. 2 音頻文件下載及斷點續(xù)傳

            MMusic 使用超文本傳輸協(xié)議HTTP 來實現(xiàn)音頻文件和歌詞的下載。HTTP 是在TCP /IP 協(xié)議上實現(xiàn)的應用層協(xié)議,用于在互聯(lián)網(wǎng)上傳輸信息。它使用Socket 在服務器和客戶端之間進行數(shù)據(jù)傳輸。

            在 OS 版本中,提供了對HTTP 客戶端的API 支持。

            使用HTTP 進行通信時,客戶端需要建立一個HTTP 客戶端會話,在會話上處理與HTTP 服務器的通信。在會話上建立HTTP 通信事務,事務由請求和響應組成,在同一個會話上可以建立一個或多個事務。也可以同時建立多個會話,來實現(xiàn)不同的連接。

            在創(chuàng)建HTTP 引擎時,首先創(chuàng)建一個RHTTPSession類的對象,然后調(diào)用該類的Open( ) 方法,打開這個新建立的會話。然后使用RHTTPTransaction類代表HTTP 事務。事務是在HTTP 客戶端會話打開的。打開事務時,需制定事務使用的數(shù)據(jù)傳輸方法,GET 或POST,同時傳入要打開的URL。服務端處理完成后,返回響應數(shù)據(jù)。HTTP 客戶端通過對MHTTP - TransactionCallback 的回遞,處理響應結(jié)果和接收響應數(shù)據(jù)。

            歌曲的下載分兩步來實現(xiàn)。首先把要搜索的歌曲名字用HTTP 引擎發(fā)送到服務器,服務器返回XML 格式的文件給客戶端。該XML 文件包含了搜索到的歌曲名字、下載地址、音頻文件格式和大小等信息。客戶端用 自帶的XML 解析器對文件進行解析,把解析后的歌曲信息存放在數(shù)組里。

            每個數(shù)組的元素為自定義的結(jié)構(gòu)體,包含歌曲名,下載地址等內(nèi)容。

            解析完畢后,切換到列表界面。列表界面顯示剛下載的XML 文件的解析結(jié)果。用戶可以根據(jù)自己的喜好選擇要下載的歌曲。此時,客戶端提取出歌曲下載的地址,用封裝好的HTTP 引擎向服務器發(fā)送下載請求??蛻舳耸紫扰袛啻螺d的文件是否已存在,如果不存在,則使用HTTP 引擎普通下載模式下載音頻文件。如果待下載的文件已存在,則獲得現(xiàn)有文件大小,并把它作為參數(shù)傳給HTTP 引擎,發(fā)送到服務器端,實現(xiàn)斷點續(xù)傳。具體代碼如下:

          具體代碼

          具體代碼



          關(guān)鍵詞: Symbian 流媒體播放器

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();