我在 Flutter 中使用 Flick Video Player。我想在视频屏幕上添加速度功能,就像音量等其他按钮一样。如何做到这一点?
您可以轻松地从
FlickManager使用此
setPlaybackSpeed(value)
,如下所示flickManager.flickControlManager?.setPlaybackSpeed(speed);
这是一个简单的示例,说明如何使用 flick_video_player
进行速度控制home_screen.dart
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
late FlickManager flickManager;
@override
void initState() {
super.initState();
flickManager = FlickManager(
videoPlayerController: VideoPlayerController.networkUrl(
Uri.parse('https://github.com/GeekyAnts/flick-video-player-demo-videos/blob/master/example/9th_may_compressed.mp4?raw=true'),
),
);
}
@override
void dispose() {
flickManager.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
child: FlickVideoPlayerWidget(flickManager: flickManager,),
);
}
}
flick_video_speed_control_widget.dart
class FlickVideoSpeedControlWidget extends StatelessWidget {
final FlickManager flickManager;
const FlickVideoSpeedControlWidget({super.key, required this.flickManager});
@override
Widget build(BuildContext context) {
return PopupMenuButton<double>(
initialValue: flickManager.flickVideoManager?.videoPlayerValue?.playbackSpeed ?? 1.0,
onSelected: (speed) {
flickManager.flickControlManager?.setPlaybackSpeed(speed);
},
itemBuilder: (context) => [
const PopupMenuItem(
value: 0.5,
child: Text("0.5x"),
),
const PopupMenuItem(
value: 1.0,
child: Text("1x"),
),
const PopupMenuItem(
value: 1.5,
child: Text("1.5x"),
),
const PopupMenuItem(
value: 2.0,
child: Text("2x"),
),
],
child: const Padding(
padding: EdgeInsets.all(8.0),
child: Icon(Icons.speed,size: 35,color: Colors.red,),
),
);
}
}
flick_video_player_widget.dart
class FlickVideoPlayerWidget extends StatelessWidget {
final FlickManager flickManager;
const FlickVideoPlayerWidget({super.key, required this.flickManager});
@override
Widget build(BuildContext context) {
return Column(
children: [
/// here is the speed control
FlickVideoSpeedControlWidget(flickManager: flickManager),
Expanded(
child: FlickVideoPlayer(
flickManager: flickManager,
flickVideoWithControls: const FlickVideoWithControls(
controls: FlickPortraitControls(),
),
flickVideoWithControlsFullscreen: const FlickVideoWithControls(
videoFit: BoxFit.fitWidth,
controls: FlickLandscapeControls(),
playerLoadingFallback: Center(child: CircularProgressIndicator()),
iconThemeData: IconThemeData(size: 30, color: Colors.white),
textStyle: TextStyle(color: Colors.white, fontSize: 16),
backgroundColor: Colors.black,
),
),
),
],
);
}
}