我确实有严重的问题。当我制作MediaPlayer(它在/ sdcard上播放歌曲)时,它工作得非常快(正常工作)。当我做了一些estetic修改(添加注释,更改onCliclListeners的功能以分离函数等)时,我看到我的MediaPlayer需要6-7秒才能开始播放(第一次播放,更改歌曲,歌曲结束等)
在LogCat上,它停留在“prepare()”,几秒后它就会更进一步。在每个动作(第一次播放,改变歌曲......)之后,它调用play()方法,其中包括:
try{
mp.reset()
mp.setDataSource(...);
mp.prepare();
mp.start();
}
我没有IDEA有什么不妥:(在我花了一周寻找理由之前,也许有人知道为什么需要这么长时间并给我提示?
答案 0 :(得分:0)
这就是为什么建议使用prepareAsync()
而不是prepare()
方法。 prepareAsync()
在单独的线程中执行准备,因此您的界面不会挂断。