Android MediaPlayer引起的应用无响应(ANR) 本帖最后由 ploere 于 2013-05-28 19:50:09 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mMediaPlayer.prepareAsync();这个是干什么的 不只是跟prepareAsync这个有关。楼主的问题主要是因为 prepareAsync这个方法运行后,需要一段较长的时间才能会到完成,虽然他是异步的,它不会造成UI阻塞。但是如果在这个方法运行的时候, 再用reset这个方法就会造成UI阻塞,因为这两个方法用了同一把异步锁。。如果把这两个方法都放到线程,也会因为同样的原因,造成时间需要很长。这个问题我也研究了1个多星期,暂时没办法解决。 在activity里面做了太多操作,一般mediaplayer都在service里面 不只是跟prepareAsync这个有关。楼主的问题主要是因为 prepareAsync这个方法运行后,需要一段较长的时间才能会到完成,虽然他是异步的,它不会造成UI阻塞。但是如果在这个方法运行的时候, 再用reset这个方法就会造成UI阻塞,因为这两个方法用了同一把异步锁。。如果把这两个方法都放到线程,也会因为同样的原因,造成时间需要很长。这个问题我也研究了1个多星期,暂时没办法解决。顶一个 使用prepareAsync()这个方法有一定的效果。 不只是跟prepareAsync这个有关。楼主的问题主要是因为 prepareAsync这个方法运行后,需要一段较长的时间才能会到完成,虽然他是异步的,它不会造成UI阻塞。但是如果在这个方法运行的时候, 再用reset这个方法就会造成UI阻塞,因为这两个方法用了同一把异步锁。。如果把这两个方法都放到线程,也会因为同样的原因,造成时间需要很长。这个问题我也研究了1个多星期,暂时没办法解决。顶一个现在知道怎么解决的了吗?求方法 上层调用应该没有问题,一是媒体文件有问题。二是Native层的问题。三是解码器的问题。只有看了 Log 才能分析。 ANR的trance LOG 有没有分析下 今天刚碰到这问题:设置完网络歌曲,n久没反应,就想下一首,还是没反应,一定要等第一个报错了才能自如操作。百度了n多,没具体说这个的。准备放弃了,最后想到stop有没有用,不报希望的试了下,还真是出乎意料。总结:问题:setDataSource(url)太长时间没获取到资源,重新播放另一首直接reset()仍要等待报错,用户体验太差。解决:调用reset()之前,先调用stop()。 看了个android新闻后有点想法 我使用Admob的遭遇 关于viewpager+gridview的问题 android 内的控件销毁问题 添加的联系人怎么没姓名? android 项目混淆器导出报错,帮忙解决一下。在线等。。。 使用Intent 在一个Activity中启动另一个Activity 异常终止这是为什么啊??错误信息如下 新手关于两个简单问题的求教 谢谢回答~~~~~ Eclipse 的 LogCat 一路狂奔! 请问这种布局要怎么实现 求答案:在HP官网看到的,图片360度旋转,由鼠标控制,这个效果怎么弄? QQ流程图及建模
不只是跟prepareAsync这个有关。楼主的问题主要是因为 prepareAsync这个方法运行后,需要一段较长的时间才能会到完成,虽然他是异步的,它不会造成UI阻塞。但是如果在这个方法运行的时候, 再用reset这个方法就会造成UI阻塞,因为这两个方法用了同一把异步锁。。如果把这两个方法都放到线程,也会因为同样的原因,造成时间需要很长。这个问题我也研究了1个多星期,暂时没办法解决。
不只是跟prepareAsync这个有关。楼主的问题主要是因为 prepareAsync这个方法运行后,需要一段较长的时间才能会到完成,虽然他是异步的,它不会造成UI阻塞。但是如果在这个方法运行的时候, 再用reset这个方法就会造成UI阻塞,因为这两个方法用了同一把异步锁。。如果把这两个方法都放到线程,也会因为同样的原因,造成时间需要很长。这个问题我也研究了1个多星期,暂时没办法解决。
顶一个
不只是跟prepareAsync这个有关。楼主的问题主要是因为 prepareAsync这个方法运行后,需要一段较长的时间才能会到完成,虽然他是异步的,它不会造成UI阻塞。但是如果在这个方法运行的时候, 再用reset这个方法就会造成UI阻塞,因为这两个方法用了同一把异步锁。。如果把这两个方法都放到线程,也会因为同样的原因,造成时间需要很长。这个问题我也研究了1个多星期,暂时没办法解决。
顶一个
现在知道怎么解决的了吗?求方法
一是媒体文件有问题。
二是Native层的问题。
三是解码器的问题。
只有看了 Log 才能分析。
总结:
问题:setDataSource(url)太长时间没获取到资源,重新播放另一首直接reset()仍要等待报错,用户体验太差。
解决:调用reset()之前,先调用stop()。