千家信息网

怎么在Android平台下开发多媒体软件MediaPlayer

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,怎么在Android平台下开发多媒体软件MediaPlayer,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。现在将介绍一
千家信息网最后更新 2024年11月18日怎么在Android平台下开发多媒体软件MediaPlayer

怎么在Android平台下开发多媒体软件MediaPlayer,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

现在将介绍一下在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 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的属性对象供我们开发利用。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0