天天看點

Android多媒體--網絡檔案播放

網絡檔案就是指放在網絡上的檔案,也可能是流媒體等網絡資源。由于這種方式不用存儲比較友善,但它的弊端就是要通過網絡,速度要比上兩種方式差,是以一般網絡播放方式要采用異步預處理方式。還有網絡流量費用也會增加使用者的使用成本。下面看看播放網絡音頻檔案的代碼請參考代碼清單12-3,完整代碼請參考chapter12_3工程中audioplayer代碼部分。

【代碼清單12-3】

private void play() {

try {

if (mmediaplayer == null || state == stop) {

// 建立mediaplayer對象并設定listener

mmediaplayer = new mediaplayer();

mmediaplayer.setonpreparedlistener(prelistener);

} else {

// 複用mediaplayer對象

mmediaplayer.reset();

}

// 播放網絡媒體最好不要調用prepare()方法

mmediaplayer

.setdatasource("http://www.51work6.com/android_book/audio/ma_mma.mp3");

mmediaplayer.prepareasync();

} catch (exception e) {

e.printstacktrace();

網絡檔案和本地檔案其實可以采用相同播放方式,當時由于考慮網絡速度的影響,網絡播放一般采用異步預處理方法prepareasync(),同步預處理方法prepare()也是可以播放網絡檔案的,但是使用者體驗不好。流程如圖12-8所示。

Android多媒體--網絡檔案播放

圖12-8播放流程

播放網絡音頻檔案不需要向其它的網絡應用程式需要在androidmanifest.xml檔案中打開<uses-permission android:name="android.permission.internet"></uses-permission>權限。

                                                                出自《android開發案例驅動教程》

繼續閱讀