Author:项勇 已更新至T8O_master
音乐跟视频在播放U盘里的文件时,拔插U盘并不会记忆播放时间,此处代码以音乐为例,视频处理类似,有发现有问题请及时指正。
查看代码发现音乐跟视频都有相关的储存方法
private void save() {
mTW.mCurrentPos = mMediaPlayer.getCurrentPosition();
try {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter("/data/tw/music"));
bw.write(mTW.mCurrentAPath);
bw.write('\n');
bw.write(Integer.toString(mTW.mCurrentIndex));
bw.write('\n');
bw.write(Integer.toString(mTW.mCurrentPos)); //这个就储存播放时间
bw.write('\n');
bw.write(Integer.toString(mTW.mShuffle));
bw.write('\n');
bw.write(Integer.toString(mTW.mRepeat));
bw.write('\n');
bw.flush();
} catch (Exception e) {
new File("/data/tw/music").delete();
} finally {
if(bw != null) {
bw.close();
bw = null;
}
}
FileUtils.setPermissions("/data/tw/music", 0666, -1, -1);
} catch (Exception e) {
}
}
经过打印发现当程序拔U盘时,程序会收到TWVideo.RETURN_MOUNT值,并最终走一下stop()方法,而此时mMediaPlayer.getCurrentPosition()的值为0,这直接导致的插U盘后从0开始播放;
1.stop()方法不处理mCurrentPos值
2.播放状态0xff02实时储存mCurrentPos值