編輯:高級開發
在前文中我們介紹了在Ubuntu下建立Eclipse的android開發環境,我們現在將介紹一下在android平台下如何開發多媒體軟件MediaPlayer。MediaPlayer可以用來播放視頻和音頻、流媒體。MediaPlayer的生命周期如下圖:
從MediaPlayer的生命周期圖,可以看出使用MediaPlayer不是很復雜。
最簡單的流程:初始化->resrt()->setDataSource()->prepare()->start()->……只要簡單的幾步,就可以播放音頻文件了。
來看看一個播放音頻的例子吧,看代碼和注釋吧……
1: private Handler handler = new Handler() {2:3: public void handleMessage(Message msg) {4: //更新進度條5: progressBar.setProgress(progressState);6: };7: };8:9: /**10: * 播放11: *12: * @param filePath13: * 文件路徑14: */15: private void playMusic(String filePath) {16: try {17: progressState = 0;18: progressBar.setProgress(0);19: // 重置20: mediaPlayer.reset();21: // 設置數據源22: mediaPlayer.setDataSource(filePath);23: // 准備播放24: mediaPlayer.prepare();25: // 獲取播放時長26: length = mediaPlayer.getDuration();27: progressBar.setMax(length / 1000);28: // 播放29: mediaPlayer.start();30: new Thread(new ProcessBarRefresh()).start();31: // 設置播放完畢監聽32: mediaPlayer.setOnCompletionListener(new OnCompletionListener() {33: @Override34: public void onCompletion(MediaPlayer mp) {35: nextMusic();36: }37: });38:39: } catch (Exception e) {40: displayToast(e.getMessage());41: }42: }43:44: /**45: * 更新進度條46: * @author 張漢國47: */48: class ProcessBarRefresh implements Runnable{49:50: @Override51: public void run() {52: while(isPlaying){53: progressState = mediaPlayer.getCurrentPosition()/1000;54: handler.sendMessage(handler.obtainMessage());55: }56: }57:58: }
以上只是一個簡單的實例,要開發一個播放器除了UI需要下功夫外,還得注意不少細節東西。
android中音樂播放是一個後台進程,以上代碼當調用 onStop()->onCreate() 的時候會重復加載播放列表,造成列表重復。這就需要用到 onSaveIntanceState(),這樣子在onCreate()裡面初始化播放列表的時候先判斷 Bundle 是否為空,是否能拿到播放列表,如果拿不到在重新初始化。
再者android自身也提供一個MediaStore這樣一個Provider的屬性對象供我們開發利用。
android DDMS將為IDE搭建起與測試終端的鏈接,它們應用各自獨立的端口監聽調試器的信息,android DDMS最大的特性就是可以實時監測到測試終端的連接情況
繼PHP for android實現之後,微軟.Net for android,也就是MonoDroid,也將馬上進入Beta測試階段,最終的MonoDroid產品將在
SDK and AVD Manager 對話框內的New 按鈕.為你的AVD鍵入如下的設置:1234Name: android_1.6Target: Google AP
android是基於Linux內核的軟件平台和操作系統,早期由Google開發,後由開放手機聯盟Open Handset Alliance)開發,看完本文你肯定有不少收