gpt4 book ai didi

android - MediaPlayer seekTo 从头开始​​不一致地播放歌曲

转载 作者:太空宇宙 更新时间:2023-11-03 10:56:14 26 4
gpt4 key购买 nike

我正在使用 Android 的 MediaPlayer 类从某个偏移量开始播放歌曲。在代码中指定此偏移量后,我播放歌曲时希望从该偏移位置听到它,但我听到它从头开始播放。请注意以下代码:

    MediaPlayer mplayer = new MediaPlayer();
mplayer.reset();
try {
// For example's sake, specify some known song path
mplayer.setDataSource("//media/external/audio/media/1");
// call blocking prepare()
mplayer.prepare();
} catch (Exception e) {
// Keep try/catch simple for example's sake
e.printStackTrace();
return;
}

// seekTo is an asynchronous operation. Set it's complete callback to play the song once seekTo has completed
mplayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
@Override
public void onSeekComplete(MediaPlayer mp) {
// Start the song 30 seconds in
mp.start();
}
});
// Seek to 30 seconds into the song
mplayer.seekTo(30000);

此代码示例在模拟器中运行时没有错误(针对 Android 1.6、2.1 和 2.2 进行了测试);然而,当在某些手机上运行时,歌曲将从头开始播放。我确信这发生在我的 Droid Incredible (android 2.2) 上。另请注意,LogCat 始终会有一些来自 MediaPlayer 类的输出,说明歌曲的位置确实已设置为某个偏移量。我已经调试了几个小时并搜索了论坛,但仍然没有解决方案。请帮忙。

最佳答案

如果您现在还没有自己找到它,这是一个缓冲问题 ( issue documented here )。寻找非缓冲位置会导致从头开始播放。建议的解决方案是 found here (不是最优雅的,但几乎所有可以做的)。

关于android - MediaPlayer seekTo 从头开始​​不一致地播放歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4129837/

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