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从一开始就不一致地播放歌曲所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)