アプリケーション全体のさまざまな場所で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()が呼び出され、正常に実行されます。