我有一些 Android 代码可以从互联网流式传输音频文件并在 10 秒后播放该流。
我正在使用一个SeekBar 来查看缓冲状态和播放状态。我想从缓冲流的中间开始播放音频。为此,我将 SeekBar 点移到中间,但无法从中间播放音频;它会返回并从头开始。我怎样才能得到寻找的位置,我怎样才能从那个特定的位置播放音频?
这是我的 SeekBar 代码。如何让此代码正确使用 OnSeekBarChangeListener?
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
// TODO Auto-generated method stub
if (arg2 && mediaPlayer.isPlaying()) {
//myProgress = oprogress;
arg1=mediaPlayer.getCurrentPosition();
mediaPlayer.seekTo(arg1);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});
最佳答案
arg1=mediaPlayer.getCurrentPosition();
mediaPlayer.seekTo(arg1);
你强制玩家寻找当前位置,而不是搜索栏返回的位置
删除行:arg1=mediaPlayer.getCurrentPosition();
它应该可以工作。当然在 MediaPlayer.prepare()
设置 SeekBar.setMax(MediaPlayer.getDuration())
之后,搜索将是准确的。
关于android - 如何使用 SeekBar 的 OnSeekBarChangeListener 寻找 MediaPlayer 对象中的特定点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3930942/