Last updated:
0 purchases
flutterpi gstreamer video player
flutterpi_gstreamer_video_player #
A video player implementation for flutter-pi.
Note this only works on a Raspberry Pi with flutter-pi and gstreamer installed, not on any other platform, even though though platform tags of the pub.dev package may seem to suggest otherwise.
Example usage #
To use this package in your app, execute FlutterpiVideoPlayer.registerWith() in main, before the runApp call. Ideally you only do this when you're sure the platform code is present.
Example code:
void main() {
FlutterpiVideoPlayer.registerWith()
runApp(MyApp());
}
copied to clipboard
Then you just use the widgets/classes of the official video_player package. chewie is good for more high-level playback.
Advanced features #
In addition to what the official video_player package provides, this video player implementation has some additional features that might be interesting.
The advanced features are also used in the example.
1. Playing raw gstreamer pipelines #
You can create a VideoPlayerController using a raw gstreamer pipeline, like here:
@override
void initState() {
_controller = _FlutterpiVideoPlayerController.withGstreamerPipeline('libcamerasrc ! queue ! appsink name="sink"');
super.initState();
}
copied to clipboard
In this case the video player will show the camera preview using libcamera.
2. Single-frame stepping #
You can step through the video playback. When stepForward or stepBackward is called, the video playback will pause.
I.e. you need to call _controller.play() again to resume it.
late VideoPlayerController _controller;
@override
void initState() {
_controller = VideoPlayerController.network(
'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
);
super.initState();
}
void stepForward() {
_controller.stepForward();
}
void stepBackward() {
_controller.stepBackward();
}
copied to clipboard
3. Fast seeking #
You can seek to the nearest keyframe instead, which is way faster than seeking to an exact position.
late VideoPlayerController _controller;
@override
void initState() {
_controller = VideoPlayerController.network(
'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
);
super.initState();
}
void doFastSeek() {
_controller.fastSeek(Duration(seconds: 5));
}
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.