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

在前文中我们介绍了在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 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的属性对象供我们开发利用。

【编辑推荐】

  1. 在Ubuntu下建立Eclipse的Android开发环境
  2. Intent,Android应用核心探秘
  3. Android应用程序开发的四个重要组成部分

分享名称:在Android平台下开发多媒体软件MediaPlayer
网址分享:http://www.36103.cn/qtweb/news2/30202.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联