我只是试图通过媒体播放器播放音乐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