<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于Symbian 平臺的流媒體播放器設計與實(shí)現

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

作者: 時(shí)間:2011-03-10 來(lái)源:網(wǎng)絡(luò ) 收藏

1 引言

本文引用地址:http://dyxdggzs.com/article/166212.htm

  繼語(yǔ)音通話(huà)、短信服務(wù)、之后,音樂(lè )無(wú)線(xiàn)下載及實(shí)時(shí)播放正在成為全球手機運營(yíng)商提供的新興服務(wù)之一,引發(fā)廣泛的關(guān)注。與傳統的基于個(gè)人電腦的音樂(lè )播放器相比,手機音樂(lè )播放器的優(yōu)勢在于其下載和播放方式的方便快捷,可以給用戶(hù)帶來(lái)輕松舒適的使用體驗。以手機音樂(lè )播放器為媒介,運營(yíng)商可以依靠其自身對移動(dòng)通信網(wǎng)絡(luò )服務(wù)的強大控制力,為顧客提供更好的服務(wù)。由于移動(dòng)通信服務(wù)的靈活性和多樣性,使其在增值業(yè)務(wù)方面也有較強的擴展性。

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

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

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

  2 系統總體框架設計

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

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

  根據播放模式的不同,動(dòng)態(tài)選擇相應的菜單和播放引擎。本地播放使用CPlayerAdapter 引擎。該引擎使用音頻播放類(lèi)CMdaAudioPlayerUtility 類(lèi)及其相關(guān)的觀(guān)察器MMdaAudioPlayerCallback 來(lái)實(shí)現本地音頻播放。流式播放則使用CPluginAdaper 引擎來(lái)實(shí)現,它使用了CMdaAudioOutputSTream 和MMdaAudioOutputStreamCallback 類(lèi)。

  MMusic 音樂(lè )播放器按功能可劃分為六個(gè)模塊:

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

MMusic 播放器功能關(guān)系圖

圖1 MMusic 播放器功能關(guān)系圖

  3 關(guān)鍵技術(shù)的介紹

  3. 1 音頻播放

  音頻播放功能可以通過(guò)MMF 所提供的接口來(lái)實(shí)現。其中音頻播放類(lèi)CMdaAudioPlayerUtility 類(lèi)提供本地播放的API,而CMdaAudioOutputStream 類(lèi)則提供流式播放的API。

  3. 1. 1 本地播放引擎

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


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 數據通信

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>