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已可以满足基本的音乐播放需求。

最新文章

  1. Oracle中如何实现Mysql的两表关联update操作
  2. SolrCloud-如何在.NET程序中使用
  3. FIJ Jobs – 2013/8/12
  4. DW Basic Knowledge1
  5. javascript学习(一) 异常处理与简单的事件
  6. 2016阿里巴巴校招offer面经
  7. ITEXT学习手册
  8. 如何在 Windows Azure 的虚拟机 ubuntu 上面安装和配置 openVPN(三)
  9. php编程冒泡排序
  10. web开发学习之旅---css第一天
  11. 在微软平台上运行 SAP 应用程序
  12. 替换bmp图片中的颜色 good
  13. MVC-04 视图(3)
  14. 消息队列NetMQ 原理分析1-Context和ZObject
  15. ECOS- 技术问题答疑[转]
  16. const vector<int> 和 vector<const int>问题讨论
  17. CloudStack学习-1
  18. 102. Binary Tree Level Order Traversal 广度优先遍历
  19. Visual studio 2010出现“error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”解决方式
  20. MySQL半同步主从.md

热门文章

  1. 04 Websocket和Websocketed
  2. 09 Scrapy框架以及基本使用
  3. Docker容器入门之一:部署SpringBoot项目
  4. shell 删除文本中的重复行
  5. deep_learning_Function_softmax_cross_entropy_with_logits
  6. emwin之BUTTON控件显示位图和流位图出现卡顿延迟的情况
  7. windows下前端开发环境配置
  8. BZOJ1787 [Ahoi2008]Meet 紧急集合[结论题]
  9. Android APK 手动签名
  10. http学习--常用请求方法和响应状态码