<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>數碼產品>MD播放器>

Symbian平臺上實現流媒體播放器

2011年09月29日 15:56 本站整理 作者:羅明珊,武茜,袁夢 用戶評論(0

  1 引言

  Symbian S60 平臺的Multimedia Framework( MMF) API 可以為上層應用程序提供多媒體服務,為用戶創建和分發豐富多彩的音樂應用。作為一個多媒體處理單元的插件集,MMF 提供了操作終端硬件的通用接口,支持不同的音頻操作,可實現本地回放和流式回放兩種模式,可播放多種音頻格式。

  在現有基于Symbian OS 的多媒體播放器的相關文獻中,討論了基于Symbian 平臺的流媒體播放器移動客戶端的設計原理,給出了指導性意見,并在結構、緩沖等方面給出了優化建議,在此基礎上提出了用戶界面的設計方案。但該文獻沒有給出多媒體技術的具體實現。本文設計并實現了基于Symbian 平臺的多媒體播放器,但其僅支持本地播放,并沒涉及到流式播放的相關技術。

  MMusic 是一款基于MMF 架構,用于播放多種音樂文件的多媒體播放軟件。它不僅實現了音樂文件的本地播放,同時支持流式播放。除此之外,該音樂播放器還支持音樂下載、歌詞下載及播放同步等功能。其界面美觀、操作簡單且具有多種功能。

  2 系統總體框架設計

  在設計系統框架時,首先明確了播放器需要實現的四項基本功能: ①支持mp3、wmv、aac 等多種格式的本地音頻播放; ②支持流式音頻播放; ③支持歌曲搜索及下載的功能; ④支持歌詞同步的功能。

  MMusic 播放器的程序實現基于Symbian S60 平臺的應用程序架構,采用多視圖框架,根據不同的功能構造不同的視圖。其視圖包括播放界面( 主界面) 、搜索歌曲界面、音樂媒體庫界面和電臺列表界面。其中播放界面是整個播放器的核心界面,主要負責音頻媒體的播放,包括本地播放和流式播放。

  根據播放模式的不同,動態選擇相應的菜單和播放引擎。本地播放使用CPlayerAdapter 引擎。該引擎使用音頻播放類CMdaAudioPlayerUTIlity 類及其相關的觀察器MMdaAudioPlayerCallback 來實現本地音頻播放。流式播放則使用CPluginAdaper 引擎來實現,它使用了CMdaAudioOutputSTream 和MMdaAudioOutputStreamCallback 類。

  MMusic 音樂播放器按功能可劃分為六個模塊:

 ?、賃I 模塊,負責各個界面顯示和界面間的切換,并對用戶按鍵進行處理;②本地播放模塊,可以提供本地音頻文件播放及音量控制等服務;③流式播放模塊,實現與服務器的交互與流式播放;④數據下載模塊,負責音頻數據的下載及存儲;⑤歌詞同步模塊,保證音頻播放與歌詞播放的同步;⑥服務器模塊,提供音樂文件和歌詞等下載資源。不同模塊的關系如圖1 所示。

  

MMusic 播放器功能關系圖

?

  圖1 MMusic 播放器功能關系圖

  3 關鍵技術的介紹

  3. 1 音頻播放

  音頻播放功能可以通過MMF 所提供的接口來實現。其中音頻播放類CMdaAudioPlayerUtility 類提供本地播放的API,而CMdaAudioOutputStream 類則提供流式播放的API。

  3. 1. 1 本地播放引擎

  MMusic 播放器把對音頻文件的初始化、播放、暫停等操作封裝在本地播放引擎CPlayer - Adapter中。該引擎包含支持音頻回放操作和簡單元數據讀取操作的音頻播放類CMdaAudio - PlayerUtility。由于它的所有操作都是異步的,需要一個客戶端來*音頻播放操作。播放引擎CPlayerAdapter 須繼承MMdaAudioPlayerCallback 接口類。該接口類提供了兩個方法,MapcInitComplete( ) 和MapcPlayComplete( ) 。本地播放流程如圖2 所示。首先通過調用CMdaAudioPlayerUtility: : NewFilePlayerL( ) 函數構造并創建一個音頻播放器的實例。當打開及初始化一個音頻采樣的工作結束后,系統自動調用MapcInit-Complete( ) 方法,通知客戶端創建實例的結果。若成功創建,則可調用CMdaAudioPlayerUtility: : Play( ) 方法來播放音頻文件。當播放某段音頻采樣操作完成后,系統再通過MapcPlayComplete( ) 回調函數通知客戶端播放已完成。

  

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發表人:小蘭 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
      <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
      <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
      <acronym id="s8ci2"></acronym>
      <acronym id="s8ci2"><center id="s8ci2"></center></acronym>