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