Slide 48
Slide 48 text
48
Use Cases
VideoPlayerController useAssetVideoController({
required String asset,
bool autoPlay = false,
bool looping = false,
}) {
final controller = useMemoized(
() "=> VideoPlayerController.asset(asset),
[asset],
);
useEffect(() {
controller
"..initialize()
"..setLooping(looping);
if (autoPlay) {
controller.play();
}
return () "=> controller.dispose();
}, [asset, autoPlay, looping]);
return controller;
}
Flutter Hooks
class VideoPage extends HookWidget {
@override
Widget build(BuildContext context) {
final videoController = useAssetVideoController(
asset: Assets.videos.bigbuckbunny,
autoPlay: true,
looping: true,
);
return Scaffold(
appBar: AppBar(),
body: Center(
child: AspectRatio(
aspectRatio: 16 / 9,
child: VideoPlayer(videoController),
),
),
);
}
}
video_player ΛͬͨྫɻVideoPlayerController ͷॳظԽɾഁغΛΟδΣοτͱ͓ͯ͘͜͠ͱͰɺผͷΟδΣοτͰ͍ճ͕͠Ͱ͖Δ