在阅读了几个类似的问题后,我发现所有遇到此错误的开发人员在从互联网流式传输媒体文件时都会看到此行为。
我使用SD卡中的音频文件(MP3),然后在服务中播放它们。我一个接一个地播放它们,在某些时候,MediaPlayer会死于标题中显示的消息。它不会通过注册的OnErrorListener抛出任何错误。在其中一个文件的最后一个调整之后它就完全死了。如果我使用相同的文件顺序,它总是相同的文件。
跟踪应用程序没有显示内存消耗的任何增长。我甚至试图使MediaPlayer静态以避免GC。最后一种方法是紧密关闭MediaPlayer,将其静态变量置为NULL并创建并重新启动所有新内容。这没有用。如果硬件消失了 - 它已经消失了。
我确实通过Google Nexus One体验了这一点,我需要帮助。我读了一个提示,在文件结束前三秒淡出。这真的是一个解决方案,我应该怎么做?
非常感谢提前。
答案 0 :(得分:1)
public void onCompletion(MediaPlayer mp) {
if(mp != null && mp.isPlaying()){
Log.d("onCompletion", "mp is playing !!! stop it!!!");
mp.stop();
}
/*
play next item here or prepare or ...
*/
}