用 Flutter 的 Range Slider 替换 Flutter 的 Slider?

问题描述

我正在使用 Flutter 的 Slider 来控制 AudioPlayers 小部件 https://pub.dev/packages/audioplayers;

  Slider(
     onChanged: (v) {

         final duration = _duration;
         if (duration == null) {return;}
         final Position = v * duration.inMilliseconds;
         _audioPlayer.seek(Duration(milliseconds: Position.round()));

         },value: (_position != null && _duration != null && _position!.inMilliseconds > 0 && 
                     _position!.inMilliseconds < _duration!.inMilliseconds)? 
                 _position!.inMilliseconds / _duration!.inMilliseconds : 0.0,),

我想用范围滑块替换 Slider,这样我不仅可以设置要播放的音频的开始点,还可以设置结束点。换句话说,拖动左手拇指球将设置游戏开始的点,拖动右手拇指球将设置游戏结束点。单击音频播放器中的播放按钮会将左 V 形向前移动并播放,直到它遇到右侧 V 形或终点。这是一个基本的 Flutter Range Slider;

    double lowvalue = _position!.inMilliseconds/_duration!.inMilliseconds;      
    double highvalue = _duration!.inMilliseconds.todouble();
    RangeValues _values =  RangeValues(lowvalue,highvalue);

    RangeSlider(
      onChanged: (v) {

         final duration = _duration;
         if (duration == null) {
           return;

      }
         final Position = v * duration.inMilliseconds;
         _audioPlayer.seek(Duration(milliseconds: Position.round()));
          },values:_values,

但是在 _values 参数上使用 values: 会在星号上产生错误,告诉我;

The operator '*' isn't defined for the type 'RangeValues'. 

范围值可以使用什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...