android mediaplay的使用中,stop和start的调用问题

来源:互联网 发布:国际金价软件 编辑:程序博客网 时间:2024/06/05 10:49
问题描述:当我在使用android自带音频播放器时,调用了stop方法后,立即在再调用它的start方法,发现此时无法播放出声音。
原因及解决方案:原因是mediaplay的stop方法在释放资源时需要一定的时间,而它的start方法是线程不安全的,即start方法调用时没有去判断stop方法是否执行完了,导致第二次调用start方法时,对mediaplay初始化失败,自然就播放不出声音了。解决方法:在调用stop方法后,再次调用start方法时,给一些延迟,保证stop方法执行完。如:
new Handler().postDelay(()->mediaInstance.start(),1000);