MediaPlayer的seekto方法怎么不能用了?

当我在播放网络歌曲时 点击暂停 player.pause() 获得当前pausePosition=player.getCurrentPosition();:能获得到数据不是0
当我在次播放时调用play()方法时 player.seekto(pausePosition);不起作用 老是重头开始播放 有大神知道 原因吗? 网路的获取音乐是用Servlet 写的用OutputStream out=response.getOutputStream();返回的 难道是需要把他封装成RandomAccessFile 这个在返回吗 ? 有大神路过吗 求告知
private void play() {
try {
player.reset();
//网络地址
String path=musicUrl(musics.get(currentMusicIndex).getId());
player.setDataSource(path);
player.prepareAsync();
player.setOnPreparedListener(new MyMusicPrepared(pausePosition));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
class MyMusicPrepared implements MediaPlayer.OnPreparedListener{
private int pauseposition;
public MyMusicPrepared( int pauseposition) {
this.pauseposition=pauseposition;
}

@Override
public void onPrepared(MediaPlayer mp) {
//当加载完成时我seekto到暂停位置
mp.seekTo(pausePosition);
//给seekto设置监听
mp.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
@Override
public void onSeekComplete(MediaPlayer mp) {
//当seekto完成时我开始音乐
mp.start();
aimIntent.setAction(STARTANIM);
sendBroadcast(aimIntent);
// 开启线程
startUpdateProgressThread();
}
});

}
}
/**
* 暂停
*/
private void pause() {
player.pause();
pausePosition = player.getCurrentPosition();
}
...全文
1183 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
雾霾露霜雪 2020-01-08
  • 打赏
  • 举报
回复
int duration = mediaPlayer.getDuration(); int seekToPosition = (duration * seekBar.getProgress()) / seekBar.getMax(); seekToPosition(seekToPosition); 解决你的问题
qugengting 2019-04-15
  • 打赏
  • 举报
回复
天呐,这么久都没人回答,我也遇到这个问题了,seekTo到还没缓存的位置时,会从头开始播放,真是抓狂!
实训报告书 实训名称: Android视频播放器 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: "实训课题 "Android视频播放器 " "实训人姓名 " "同组人员 " " "实训日期 " " "实训成绩 " " "指导教" " "师评语" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "指导教师签名:______________ " " "_______年 ____ 月____日 " 目 录 1 实训目的 1 2 android视频播放器系统的分析与设计 1 2.1 系统功能描述 1 2.2 系统模块设计 1 3 主要代码清单 2 4 程序运行与测试 2 5 实训总结 3 android视频播放器系统的设计与实现 1 实训目的 本学期我们学习了JAVA课程和Android应用程序开发课程。而Android应用程序是利用 Java语言开发的,本次实训能够对我们所学的Java语言和Android应用程序开发的一次综 合实践,使我们能够更好的掌握Java语言在实际开发中的应用,同时也为了使我们能够 更好的掌握和学习Android应用程序开发,对所学的知识进一步牢固。培养运用所学知识 解决实际课程的能力,培养开发Android应用程序的思想和方法。同时在实训过程中也能 不断学习新的知识。 2 Android视频播放器系统的分析与设计 2.1 系统功能描述 该系统是一个能够在Android平台下运行的视频播放器。能够实现一下功能: 1)播放功能: 能够实现mp4、avi格式文件的播放。 2)暂停功能: 点击暂停按钮时能够暂停播放视频,再次点击暂停按钮时能够继续播放。 3)重播功能: 点击重播按钮时能够从头开始播放视频。 4)停止功能: 点击停止按钮时能够停止播放视频,再点击播放按钮时能够从头开始播放。 5)快进功能: 点击快进按钮时能够向前跳跃5秒播放。 6)后退功能: 点击回退按钮时能够向后跳跃5秒播放。 7)显示进度条: 能够显示文件播放进度。 拖动进度条能够实现视频快进、快退功能。 8)退出功能: 点击退出按钮时能够正常退出程序。 2.2 系统模块设计 1、输入文件模块:在该模块中采用EditText控件来实现。 2、播放视频模块:该模块是用MediaPlayer类通过surfaceView来实现。 3、暂停播放模块:该模块是用MediaPlayer.push()方法来实现。 4、重播模块:该模块通过MediaPlayer.reset()方法来实现。 5、停止播放模块:该模块通过MediaPlayer.stop()方法实现。 6、快进模块:该模块通过MediaPlayer.seekTo()方法来实现。 7、后退模块:该模块通过MediaPlayer.seekTo()方法来实现。 8、退出模块:该模块通过调用finish()方法来实现,并释放资源。 3 主要代码清单 3.1 main.xml布局文件 该部分是在主界面上放置一个EditText看控件,在本程序中用于接收输入的文件名。 SurfaceView控件是用于播放
实训报告书 实训名称: Android视频播放器 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: "实训课题 "Android视频播放器 " "实训人姓名 " "同组人员 " " "实训日期 " " "实训成绩 " " "指导教" " "师评语" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "指导教师签名:______________ " " "_______年 ____ 月____日 " 目 录 1 实训目的 1 2 android视频播放器系统的分析与设计 1 2.1 系统功能描述 1 2。2 系统模块设计 1 3 主要代码清单 2 4 程序运行与测试 2 5 实训总结 3 android视频播放器系统的设计与实现 1 实训目的 本学期我们学习了JAVA课程和Android应用程序开发课程。而Android应用程序是利用 Java语言开发的,本次实训能够对我们所学的Java语言和Android应用程序开发的一次综 合实践,使我们能够更好的掌握Java语言在实际开发中的应用,同时也为了使我们能够更 好的掌握和学习Android应用程序开发,对所学的知识进一步牢固.培养运用所学知识解决 实际课程的能力,培养开发Android应用程序的思想和方法。同时在实训过程中也能不断 学习新的知识。 2 Android视频播放器系统的分析与设计 2.1 系统功能描述 该系统是一个能够在Android平台下运行的视频播放器.能够实现一下功能: 1)播放功能: 能够实现mp4、avi格式文件的播放。 2)暂停功能: 点击暂停按钮时能够暂停播放视频,再次点击暂停按钮时能够继续播放。 3)重播功能: 点击重播按钮时能够从头开始播放视频。 4)停止功能: 点击停止按钮时能够停止播放视频,再点击播放按钮时能够从头开始播放。 5)快进功能: 点击快进按钮时能够向前跳跃5秒播放。 6)后退功能: 点击回退按钮时能够向后跳跃5秒播放。 7)显示进度条: 能够显示文件播放进度。 拖动进度条能够实现视频快进、快退功能。 8)退出功能: 点击退出按钮时能够正常退出程序。 2。2 系统模块设计 1、输入文件模块:在该模块中采用EditText控件来实现。 2、播放视频模块:该模块是用MediaPlayer类通过surfaceView来实现。 3、暂停播放模块:该模块是用MediaPlayer。push()方法来实现。 4、重播模块:该模块通过MediaPlayer.reset()方法来实现。 5、停止播放模块:该模块通过MediaPlayer.stop()方法实现。 6、快进模块:该模块通过MediaPlayer.seekTo()方法来实现. 7、后退模块:该模块通过MediaPlayer.seekTo()方法来实现. 8、退出模块:该模块通过调用finish()方法来实现,并释放资源。 3 主要代码清单 3。1 main。xml布局文件 该部分是在主界面上放置一个EditText看控件,在本程序中用于接收输入的文件名。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧