getSpeedButton method

Widget getSpeedButton()

Implementation

Widget getSpeedButton() {
  speedLabel ??= TextView(speedLabelModel);
  speedLabelModel.value = '${_controller?.value.playbackSpeed}x';

  var label = Stack(alignment: Alignment.center, children: [
    const Icon(Icons.circle, color: Colors.white38, size: 40),
    speedLabel!
  ]);

  var popup = PopupMenuButton<double>(
      initialValue: _controller?.value.playbackSpeed,
      tooltip: 'Playback speed',
      onSelected: (double speed) {
        _controller?.setPlaybackSpeed(speed);
        speedLabelModel.value = '${speed}x';
      },
      itemBuilder: (BuildContext context) {
        return <PopupMenuItem<double>>[
          for (final double speed in _playbackRates)
            PopupMenuItem<double>(value: speed, child: Text('${speed}x'))
        ];
      },
      child: label);

  return Positioned(top: 5, right: 5, child: popup);
}