android – MediaPlayer seekTo从一开始就不一致地播放歌曲

android – MediaPlayer seekTo从一开始就不一致地播放歌曲,第1张

概述我正在使用 Android的MediaPlayer类开始播放一些偏移的歌曲.在代码中指定此偏移后,我播放期望从该偏移位置听到它的歌曲,但我听到它从头开始播放.请注意以下代码: MediaPlayer mplayer = new MediaPlayer(); mplayer.reset(); try { // For example's sake, specify s 我正在使用 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从一开始就不一致地播放歌曲全部内容,希望文章能够帮你解决android – MediaPlayer seekTo从一开始就不一致地播放歌曲所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1124116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存