我遇到了一个问题,就是偶尔会出现MediaPlayer.create方法返回null的情况,尽管音频文件肯定存在。实际上,如果我将创建调用放入while循环中,媒体播放器最终将成功创建。这似乎只发生在我的手机上(HTC Hero运行2.1),而在模拟器中从未发生。
这只是手机的问题吗?还是我应该以不同的方式播放这些音频文件?
请注意,我想要动态加载它们,这就是为什么我正在调用getIndentifer的原因。如果有更好的方法可以动态地播放这些音频,请告诉我。
public void playAudio(String audioFile){
//instance variable of type MediaPlayer
_player = null;
while(_player == null){
_player = MediaPlayer.create(_context, getResources().getIdentifier(audioFile, "raw", _context.getPackageName()));
}
_player.start();
}
感谢。
create
方法之前会调用_player.release()
(不过必须在try/catch中调用release
)。 - Darcy