編輯:Android開發實例
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 filePath
13: * 文件路徑
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: @Override
34: 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: @Override
51: 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的屬性對象供我們開發利用。
轉自:http://www.cnblogs.com/halzhang/archive/2010/05/28/1746596.html
在Android上開發一些小應用既可以積累知識又可以增加樂趣,與任務式開發不同
本文實例講述了Android中數據庫常見操作。分享給大家供大家參考,具體如下: android中數據庫操作是非常常見了,我們會經常用到,操作的方法也有很多種形式,
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩