gpt4 book ai didi

Android:媒体播放器持续时间问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:56 25 4
gpt4 key购买 nike

我已经设置:

mSeekBar.setMax(mp.getDuration()); // 8480

Audiofile 完成后,我得到的是:

 player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mediaPlayer)
{
Log.e("onComplete>>", ""+mediaPlayer.getCurrentPosition());

// mediaPlayer.getCurrentPosition() = 8192

Log.e("getDuration", ""+mediaPlayer.getDuration());

// mediaPlayer.getDuration() = 8480

if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration())
{
// Why never get called???
}
}
});

那么,为什么 MediaPlayer 的当前位置永远不会达到音频文件的总持续时间?

或者技术上我们可以说:

为什么不呢?

mediaPlayer.getCurrentPosition()==mediaPlayer.getDuration()

为什么总是

mediaPlayer.getCurrentPosition() < mediaPlayer.getDuration()在 OnCompletion 监听器中?

例如:

我有一个用于启动播放器的播放 符号。现在,当我按下 play 符号时,它将转换为 Pause 符号。

我有一个音频文件的最大持续时间。

现在我想在音频文件完全播放时将 Pause 符号转换为 Play 符号。所以我正在做的是检查:

if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration())
{
// Convert Imagview from Pause to Play
// But never get called
}

最佳答案

如果您需要通过检查 currentPoision 持续时间来完成一些任务,您可以使用以下技巧:

if(mediaPlayer.getDuration()-mediaPlayer.getCurrentPosition()<1000){//milliseconds
new Handler().postDelayed(
new Runnable() {
@Override
public void run() {
// Convert Imageview from Pause to Play
}
},1000);
}

关于Android:媒体播放器持续时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26057487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com