ZWate 2017-01-17 06:49 采纳率: 0%
浏览 893

拖动seekbar后获取的seekbar.getProgress()值有一些误差如何解决

private void setSeerBar() {
mMax = mediaPlayer.getDuration();
seekbar.setMax(mMax);
seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(final SeekBar seekBar, int progress, boolean fromUser) {
currentProgress_seek = seekbar.getProgress();
currentProgress_media = mediaPlayer.getCurrentPosition();

    long timelong = currentProgress_seek / 1000;
    hour_ = timelong / 60 / 60;
    minute_ = (timelong / 60) % 60;
    second_ = timelong % 60;
    Log.e("nowtime", "currenttime:" + hour_ + ":" + minute_ + ":" + second_);


}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {


}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
    if (mediaPlayer != null) {
        mMax = mediaPlayer.getDuration();
        mediaPlayer.seekTo(currentProgress_seek);
        currentProgress_media = mediaPlayer.getCurrentPosition();
        currentProgress_seek = seekbar.getProgress();
        long timelong = currentProgress_media / 1000;
        hour_ = timelong / 60 / 60;
        minute_ = (timelong / 60) % 60;
        second_ = timelong % 60;
        Log.e("nowtime", "stoptime:" + hour_ + ":" + minute_ + ":" + second_);
        Log.e("SeekBarState", "stopprovess" + seekbar.getProgress());
        Message message = new Message();
        handler.sendEmptyMessage(message.what);
    }

}

});

}

然后打印出来的结果是: currenttime:0:49:14
01-11 11:55:54.687 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:49:15
01-11 11:55:55.691 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:49:16
01-11 11:55:56.120 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:15
01-11 11:55:56.213 10778-10778/com.example.bmvod.film E/nowtime: stoptime:0:42:15
01-11 11:55:56.688 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:10
01-11 11:55:57.688 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:11
01-11 11:55:58.687 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:12
01-11 11:55:59.689 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:13
这样的,,
停止的时间是42分15秒,然后下一个打印应该是42分16秒,但是打印结果是42分10秒 这个误差是如何产生的?怎么解决呢?。。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
    • ¥15 错误 LNK2001 无法解析的外部符号
    • ¥50 安装pyaudiokits失败
    • ¥15 计组这些题应该咋做呀
    • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
    • ¥15 让node服务器有自动加载文件的功能