扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
怎么在Android平台下开发多媒体软件MediaPlayer,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站制作、成都网站建设、越秀网络推广、小程序开发、越秀网络营销、越秀企业策划、越秀品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供越秀建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
现在将介绍一下在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的属性对象供我们开发利用。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流