我只是試圖通過媒體播放器播放音樂n秒。從主文件無法在未調用Looper.prepare()的線程中創建處理程序Android Media Player
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;
}
我的函數調用:
public void Play_Music() {
mBtTestUtils.playMusic(MUSIC_PATH);
}
}
這裏的時候,我這樣做,我收到以下錯誤:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
任何幫助,將不勝感激。
你是否在與主(UI)線程不同的線程上調用它? – Juan
@Juan是的,我從不同的線程調用。 – taz
這就是問題所在。你必須在同一個UI線程中調用它。 – Juan