配合工具解决MediaPlayer突然没有声音(mediaplayer报错what=1, extra=-19·)

        上回写了一篇博文,谈及MediaPlayer播放器有时候会没有声音的问题:(what=-38,extra=0) ,这篇文单讲的主要是在不恬当的状态下做了不适当的操作导致的,如当你release之后,当然不能做播放操作。当然这bn也是一个问题。后来,公司的测试人员,又找了我说,又复现了问题。然后他就复现给我看,他采取了频繁进出Activity的操作。这个当然能想到的是内存泄露等等问题,但是内存泄露又是多么微观,和不大可见的东西,该怎么去查看,怎么才能判断自己优化的代码还有没有问存泄露呢?

         首先,Mediaplayer当然有底层的程序支持,这个MediaPlayer的使用是有上限的,所以,你不能无限地创建MediaPlayer,这会导致占用过多的资源,也就有我们所获到到的what=-1,extra=-19这种错误,所以会导致你的部分声音不能够播放。

         然后,我们的查询工具,就是我们的dumpsys命令,dumpsys能够查询当前的状态,dumpsys media.audio_flinger命令,可以查看当然该服务的资源占用情况。查看之后可以看到有以下的进程,Active表示是否进行使用,Client是进程号。

          其次,通过进程号来查询包名,然后过滤(grep  进程号)操作的应用所占用的数目。

        此处,便可以查看你的进程使用了多少的mediaplayer资源,如果你频繁操作,进进出出,如果数目一直在增加,便说明你的应用使用的不当,应当仔细查看创建与销毁是否得当。

        根据这个方法,我根治了我的应用没声音的情况,希望对你有用~

        加油,共勉~

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值