android 播放音乐媒体文件(四)
2024-09-01 07:09:31
mMediaPlayer 播放网络mp3
1.异步准备
使用
mMediaPlayer.prepareAsync();
2.监听prepareAsync结果
使用MediaPlayer.OnPreparedListener
3.获取长度
在public void onPrepared(MediaPlayer mp) 方法中可以获得长度
int duration = mMediaPlayer.getDuration(); 4.获取缓存进度
使用:MediaPlayer.OnBufferingUpdateListener
大概代码像下面这样:
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
btPlayStop.setEnabled(true);
int duration = mMediaPlayer.getDuration();
sbMusicProcess.setMax(duration);
mHandler.sendEmptyMessage(1);
mMediaPlayer.start();
btPlayStop.setChecked(PLAYING);
}
});
try {
mMediaPlayer.setDataSource(mp3url);
} catch (IOException e) {
e.printStackTrace();
}
mMediaPlayer.prepareAsync(); mMediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
runOnUiThread(new Runnable() {
@Override
public void run() {
sbMusicProcess.setSecondaryProgress((sbMusicProcess.getMax() * process / 100));
}
});
}
}); mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.reset();
btPlayStop.setChecked(READY);
}
});
prepare 与prepareAsync()的区别
后台推荐网络和异步使用。
prepareAsync()工作原理分析
参考:
http://blog.csdn.net/hejjunlin/article/details/52420803
至此MediaPlayer已可以满足基本的音乐播放需求。
最新文章
- Oracle中如何实现Mysql的两表关联update操作
- SolrCloud-如何在.NET程序中使用
- FIJ Jobs – 2013/8/12
- DW Basic Knowledge1
- javascript学习(一) 异常处理与简单的事件
- 2016阿里巴巴校招offer面经
- ITEXT学习手册
- 如何在 Windows Azure 的虚拟机 ubuntu 上面安装和配置 openVPN(三)
- php编程冒泡排序
- web开发学习之旅---css第一天
- 在微软平台上运行 SAP 应用程序
- 替换bmp图片中的颜色 good
- MVC-04 视图(3)
- 消息队列NetMQ 原理分析1-Context和ZObject
- ECOS- 技术问题答疑[转]
- const vector<;int>; 和 vector<;const int>;问题讨论
- CloudStack学习-1
- 102. Binary Tree Level Order Traversal 广度优先遍历
- Visual studio 2010出现“error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”解决方式
- MySQL半同步主从.md
热门文章
- 04 Websocket和Websocketed
- 09 Scrapy框架以及基本使用
- Docker容器入门之一:部署SpringBoot项目
- shell 删除文本中的重复行
- deep_learning_Function_softmax_cross_entropy_with_logits
- emwin之BUTTON控件显示位图和流位图出现卡顿延迟的情况
- windows下前端开发环境配置
- BZOJ1787 [Ahoi2008]Meet 紧急集合[结论题]
- Android APK 手动签名
- http学习--常用请求方法和响应状态码