-
目前在公司做一个音乐播放器,要求实现边下边播 ,目前可以缓冲(使用mediaplayer方法),但是缓冲完,下次点击还是要缓冲。
-
在网络上找了半天,都没有自己想要的,索性自己改写了下:
-
首先,设置歌曲的流媒体地址,大小 K,时长S:
-
audioStreamer .startStreaming("http://dl.stream.qqmusic.qq.com/C60000481cWs2JgWe0.m4a?vkey=6CBF20C303484A0B85E934E8FDD3BB71728C0330361EDDC47AB5DE469CED96498AE0F49AA1A1F3C140C3025777B0A9797C06D3DBE49AF878&guid=ffffffff8afc2b3d93639dff5d33dfdf&continfo=3FCB7A958190A574743899483D552CF4722273BAD86777AD&uin=4611687117939015688&fromtag=100", 5164, 240);
-
再根据地址进行下载10s的缓存文件进行播放,大于初始值10s,就开始播放:
-
if ((totalKbRead * 1024) >= initByte) {
try {
startMediaPlayer();
} catch (Exception e) {
Log.e(getClass().getName(), "Error copying buffered conent.", e);
}
} -
播放完成的缓存少于1s时候,重新设置缓存,这样就可以实现连续播放:
float pos = ((float) (initByte)) / (float) (rate); -
else if (mediaPlayer.getDuration() - mediaPlayer.getCurrentPosition() <= 1000) {
Log.d(getClass().getName(),
mediaPlayer.getDuration() + "=getDuration==" + mediaPlayer.getCurrentPosition());
transferBufferToMediaPlayer();
} else if ((pos - mediaPlayer.getCurrentPosition()) <= 1000) {
Log.d(getClass().getName(), pos + "=initByte==" + mediaPlayer.getCurrentPosition());
transferBufferToMediaPlayer();
} -
具体下载地址:
-
http://download.****.net/download/a2081282/10042613
相关文章
- 慕课网实战项目《WebAPP书城整站开发》笔记一:底部边栏样式实现
- HTML5边玩边学(1)画布实现方法
- android 用shape画矩形边框(可以只画任意一个边)
- alsa框架编写应用层,实现边播放边录音
- ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示(优化篇)
- Android Webview实现文件下载功能
- iOS边练边学--多线程练习的多图片下载 以及 使用第三方框架(SDWebImage)的多图片下载
- Android初级教程XUtils实现“断点续传”下载
- Android 本地/网路下载图片实现放大缩小
- android网络编程之HttpUrlConnection的讲解--实现文件断点下载