我正在制作一个简单的应用程序来播放在线广播流。我知道如何设置流。到目前为止,这是我的代码。它设置流并正常播放。但是如果我点击停止,我就无法让它重新开始。我是否遗漏了一些明显的东西?
final MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(url);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mediaPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // might take long! (for buffering, etc)
streamButton = (ToggleButton) findViewById(R.id.playstopstream);
streamButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, final boolean isChecked) {
// TODO Auto-generated method stub
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if(isChecked)
{
mediaPlayer.start();
}
else
{
mediaPlayer.stop();
mediaPlayer.reset();
}
}
最佳答案
老问题,但我在寻找这个时遇到了它。只需使用 pause 停止,然后在重新启动之前使用 seekTo(0):
mediaPlayer.seekTo(0);
mediaPlayer.start();
无需每次都重新准备录音机即可工作。
关于java - 如何停止 MediaPlayer 流然后重新启动它?安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486951/