Symbian平臺上實現(xiàn)流媒體播放器
1 引言
Symbian S60 平臺的Multimedia Framework( MMF) API 可以為上層應(yīng)用程序提供多媒體服務(wù),為用戶創(chuàng)建和分發(fā)豐富多彩的音樂應(yīng)用。作為一個多媒體處理單元的插件集,MMF 提供了操作終端硬件的通用接口,支持不同的音頻操作,可實現(xiàn)本地回放和流式回放兩種模式,可播放多種音頻格式。
在現(xiàn)有基于Symbian OS 的多媒體播放器的相關(guān)文獻中,討論了基于Symbian 平臺的流媒體播放器移動客戶端的設(shè)計原理,給出了指導(dǎo)性意見,并在結(jié)構(gòu)、緩沖等方面給出了優(yōu)化建議,在此基礎(chǔ)上提出了用戶界面的設(shè)計方案。但該文獻沒有給出多媒體技術(shù)的具體實現(xiàn)。本文設(shè)計并實現(xiàn)了基于Symbian 平臺的多媒體播放器,但其僅支持本地播放,并沒涉及到流式播放的相關(guān)技術(shù)。
MMusic 是一款基于MMF 架構(gòu),用于播放多種音樂文件的多媒體播放軟件。它不僅實現(xiàn)了音樂文件的本地播放,同時支持流式播放。除此之外,該音樂播放器還支持音樂下載、歌詞下載及播放同步等功能。其界面美觀、操作簡單且具有多種功能。
2 系統(tǒng)總體框架設(shè)計
在設(shè)計系統(tǒng)框架時,首先明確了播放器需要實現(xiàn)的四項基本功能: ①支持mp3、wmv、aac 等多種格式的本地音頻播放; ②支持流式音頻播放; ③支持歌曲搜索及下載的功能; ④支持歌詞同步的功能。
MMusic 播放器的程序?qū)崿F(xiàn)基于Symbian S60 平臺的應(yīng)用程序架構(gòu),采用多視圖框架,根據(jù)不同的功能構(gòu)造不同的視圖。其視圖包括播放界面( 主界面) 、搜索歌曲界面、音樂媒體庫界面和電臺列表界面。其中播放界面是整個播放器的核心界面,主要負(fù)責(zé)音頻媒體的播放,包括本地播放和流式播放。
根據(jù)播放模式的不同,動態(tài)選擇相應(yīng)的菜單和播放引擎。本地播放使用CPlayerAdapter 引擎。該引擎使用音頻播放類CMdaAudioPlayerUTIlity 類及其相關(guān)的觀察器MMdaAudioPlayerCallback 來實現(xiàn)本地音頻播放。流式播放則使用CPluginAdaper 引擎來實現(xiàn),它使用了CMdaAudioOutputSTream 和MMdaAudioOutputStreamCallback 類。
MMusic 音樂播放器按功能可劃分為六個模塊:
?、賃I 模塊,負(fù)責(zé)各個界面顯示和界面間的切換,并對用戶按鍵進行處理;②本地播放模塊,可以提供本地音頻文件播放及音量控制等服務(wù);③流式播放模塊,實現(xiàn)與服務(wù)器的交互與流式播放;④數(shù)據(jù)下載模塊,負(fù)責(zé)音頻數(shù)據(jù)的下載及存儲;⑤歌詞同步模塊,保證音頻播放與歌詞播放的同步;⑥服務(wù)器模塊,提供音樂文件和歌詞等下載資源。不同模塊的關(guān)系如圖1 所示。
?
圖1 MMusic 播放器功能關(guān)系圖
3 關(guān)鍵技術(shù)的介紹
3. 1 音頻播放
音頻播放功能可以通過MMF 所提供的接口來實現(xiàn)。其中音頻播放類CMdaAudioPlayerUtility 類提供本地播放的API,而CMdaAudioOutputStream 類則提供流式播放的API。
3. 1. 1 本地播放引擎
MMusic 播放器把對音頻文件的初始化、播放、暫停等操作封裝在本地播放引擎CPlayer - Adapter中。該引擎包含支持音頻回放操作和簡單元數(shù)據(jù)讀取操作的音頻播放類CMdaAudio - PlayerUtility。由于它的所有操作都是異步的,需要一個客戶端來*音頻播放操作。播放引擎CPlayerAdapter 須繼承MMdaAudioPlayerCallback 接口類。該接口類提供了兩個方法,MapcInitComplete( ) 和MapcPlayComplete( ) 。本地播放流程如圖2 所示。首先通過調(diào)用CMdaAudioPlayerUtility: : NewFilePlayerL( ) 函數(shù)構(gòu)造并創(chuàng)建一個音頻播放器的實例。當(dāng)打開及初始化一個音頻采樣的工作結(jié)束后,系統(tǒng)自動調(diào)用MapcInit-Complete( ) 方法,通知客戶端創(chuàng)建實例的結(jié)果。若成功創(chuàng)建,則可調(diào)用CMdaAudioPlayerUtility: : Play( ) 方法來播放音頻文件。當(dāng)播放某段音頻采樣操作完成后,系統(tǒng)再通過MapcPlayComplete( ) 回調(diào)函數(shù)通知客戶端播放已完成。
- 第 1 頁:Symbian平臺上實現(xiàn)流媒體播放器
- 第 2 頁:流式播放引擎
- 第 3 頁:歌曲的下載
- 第 4 頁:軟件實現(xiàn)及效果
本文導(dǎo)航
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
相關(guān)閱讀:
- [電子說] 基于FPGA技術(shù)HIFI音頻播放器方案 2023-10-23
- [電子說] 基于RTT-LVGL的音樂播放器設(shè)計案例 2023-09-18
- [電子說] 使用MC34063設(shè)計的mp3播放器充電器 2023-10-06
- [電子說] OpenHarmony創(chuàng)新賽技術(shù)賦能,深開鴻專家9月開講 2023-09-13
- [電子說] 基于CW32的MP3播放器設(shè)計 2023-09-06
- [電子說] Wowza HTML5視頻播放器--Flowplayer 2023-09-01
- [電子說] EN50332—媒體播放器(含耳機)輸出音量安全規(guī)范測試方案 2022-07-21
- [電子說] 藍(lán)牙HI-FI Hi-res播放器方案 2021-12-04
( 發(fā)表人:小蘭 )