Media Playerでn秒間だけ音楽を再生しようとしています。私はこれを行うとき、ここでLooper.prepare()を呼び出していないスレッド内でハンドラを作成できません。Android Media Player
public void Play_Music() {
mBtTestUtils.playMusic(MUSIC_PATH);
}
}
私は次のエラーを取得する:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
任意の助けをいただければ幸いメインファイルからMy機能発信者が
public void playMusic(String music_path) {
MediaPlayer mMediaPlayer = new MediaPlayer();
try {
mMediaPlayer.setDataSource(music_path);
mMediaPlayer.prepare();
mMediaPlayer.start();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mMediaPlayer.stop();
}
}, 20000);
mMediaPlayer.release();
Log.i(TAG, "Done Playing");
} catch (IOException e) {
e.printStackTrace();
}
return;
}
。
メイン(UI)スレッドとは異なるスレッドでこれを呼び出していますか? – Juan
@Juanはい、別のスレッドから呼び出しています。 – taz
それが問題です。同じUIスレッドで呼び出す必要があります。 – Juan