当我在播放网络歌曲时 点击暂停 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();
}
当我在次播放时调用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();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货