笔记84 | 修复音乐视频拔插U盘不记忆播放时间问题

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值

原文发布于微信公众号 - 项勇(xiangy_life)

原文发表时间:2018-12-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券