为了减少在整个应用程序中的许多地方使用 MediaPlayer 时的行数,我将 MediaPlayer 子类化,并在构造函数中调用相同的 3 行,每次需要播放媒体文件时重复:
public MyMediaPlayer(Context context, int resid) {
create(context, resid);
setOnCompletionListener(this);
start();
}
所以我只把它放在调用者中,而不是那 3 行:
new MyMediaPlayer(this, R.raw.happybirthday);
它可以编译和构建,甚至可以运行,但媒体文件由于某种原因无法播放。
我检查了 LogCat 并注意到:
07-19 20:00:51.124: E/MediaPlayer(16517): start called in state 1
07-19 20:00:51.124: E/MediaPlayer(16517): error (-38, 0)
这些错误是什么意思?
我错过了什么?
顺便说一句,onCompletion()被调用并且运行良好。