Android 4.4.4 在线播放mp3文件存在的问题
来源:互联网 发布:淘宝买至宝 编辑:程序博客网 时间:2024/04/30 06:44
Android写一个很简单的mediaplay播放:
在构造函数中创建对象,设置监听
<span style="white-space:pre"></span>mediaPlayer = new MediaPlayer();<span style="white-space:pre"></span>mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);<span style="white-space:pre"></span>mediaPlayer.setOnBufferingUpdateListener(this);<span style="white-space:pre"></span>mediaPlayer.setOnPreparedListener(this);<span style="white-space:pre"></span>mediaPlayer.setOnCompletionListener(this);<span style="white-space:pre"></span>mediaPlayer.reset();
点击listview的item后调用播放:
<span style="white-space:pre"></span>mediaPlayer.setDataSource(videoUrl);<span style="white-space:pre"></span>mediaPlayer.prepareAsync();// prepare之后自动播放在设置监听 setOnPreparedListener 函数接口中实现mediaPlayer.start();
在代码逻辑上看着貌似没有任何问题。
在真正试用中发现,当网络状况不好,播放一首歌曲永远调用不了setOnPreparedListener函数一直在准备播放中,当网络好了就可以播放了,但网络一直不好的情况下,只能等下去,因为切下一首他会告诉你是无效操作,真个操作中断不了。
在Android源码4.4.4上通过framework层代码分析,问题一直追踪到url_request.cc文件中。
第二次reset是调用这个方法,被卡死,没有返回,
上面的步骤去调用下面的函数,取回包头,判断文件类型解码。
在解码类型文件中调用这个readat,去读取数据。并等待锁返回
如果数据不会来,循环,回来再解锁。
在这儿循环在判断,
在访问网络的文件中
只有在网络有数据和失去连接后。这个锁才会被释放。
访问return没有调用上层onReadCompleted,时会出现问题。每次在return哪儿加调用,正常播放成为了概率事件。(网络特别好的情况下有几次能播)
整个过程交给了,
这个函数被底层net::URLRequest
调用OnReadCompleted函数被底层调用。如果不调用,上层就被while锁住。
被锁的问题是在搞不定。Android5.1改变了访问网络的方式,使用mediahttp,最终调用api成的mediaplayhttpconnect去访问网络。
这个地方还可以怎么改一下???????????
0 0
- Android 4.4.4 在线播放mp3文件存在的问题
- 探讨一下关于在线播放阻止用户下载你的MP3的问题
- Mp3在线播放预览
- 在线播放mp3代码(dewplayer)
- 周杰伦 jay《最长的电影》mp3 下载/试听/MV/在线播放
- 周杰伦 jay《蒲公英的约定》mp3 下载/试听/MV/在线播放
- Linux下mp3文件的乱码问题
- android获取MP3文件的歌曲信息
- 关于通过DDMS向Android系统的模拟器的sdcard中导入mp3文件的问题
- android使用本地应用在线播放流媒体文件
- android使用本地应用在线播放流媒体文件
- 在线播放MP3音乐HTML代码
- 解决utunbu无法在线播放音乐的问题
- 2006.9.19 解决了程序播放mp3文件的问题
- 爱国者MP3的录音文件导入MATLAB时一点问题
- linux删除文件可能存在的问题
- linux下 基于libmad的socket多用户mp3音频在线播放服务器
- Android读取系统mp3文件
- 使用OpenCV中的几种线性滤波器对图像平滑处理
- Spark 下操作 HBase(1.0.0 新 API)
- UnrealVS扩展
- sublime text3添加到右键选项
- js中url和ip地址校验
- Android 4.4.4 在线播放mp3文件存在的问题
- 为虚幻引擎4设置Visual Studio
- 增加<em>标签
- AVL树(考研的同学需要注意其定义)的判定(某公司2012年校园招聘笔试题目)
- 判断是不是中文
- J2EE、J2SE、J2ME、JDK各个击破(概念级)
- POJ 3250 Bad Hair Day(单调栈)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 、求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000 *