所以,我正在尝试从在线链接加载/流式传输 mp3 文件。我在实现中遇到的问题是同一个音频文件被播放了两次。
代码如下:
初始声明:
MediaPlayer mediaPlayer;
(在片段中)OnCreateView:
mediaPlayer = new MediaPlayer();
playPodCast(getPosition);
播放播客方法:
public void playPodCast(int index) {
try {
String url = toGet.get(index).get("URL").toString();
mediaPlayer.reset();
mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(this);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onPrepared(MediaPlayer arg0) {
// TODO Auto-generated method stub
mediaPlayer.start();
}
我还实现了一个播放/暂停按钮:
btnPlay.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (mediaPlayer.isPlaying()) {
if (mediaPlayer != null) {
mediaPlayer.pause();
// Changing button image to play button
btnPlay.setImageResource(R.drawable.play);
}
} else {
// Resume song
if (mediaPlayer != null) {
mediaPlayer.start();
// Changing button image to pause button
btnPlay.setImageResource(R.drawable.pause);
}
}
}
});
该实现的奇怪之处在于,在音频文件的双重播放模式下,通过此播放/暂停实现只能访问其中一个。
例如,如果首先播放音频文件 A(1st),几秒钟后将再次播放文件 A(2nd)。在这两个 A(1st) 中,可以通过播放/暂停实现来控制。
帮助。