class VlcMain extends StatefulWidget {
final VlcPlayerController controller;
final Function endedListener;
final Function initializedListener;
final Function playingListener;
final Function stoppingListener;
final Function errorListener;
VlcMain({this.controller, this.endedListener, this.initializedListener, this.playingListener, this.stoppingListener, this.errorListener});
@override
_VlcMainState createState() => _VlcMainState();
}
class _VlcMainState extends State<VlcMain> {
PlayingState _state;
@override
void initState() {
super.initState();
widget.controller.addListener(() async {
final PlayingState state = widget.controller.value.playingState;
setState(() {
_state = state;
});
switch(_state) {
case PlayingState.initialized:
widget.initializedListener();
widget.controller.play();
break;
case PlayingState.playing:
widget.playingListener();
break;
case PlayingState.stopped:
widget.stoppingListener();
break;
case PlayingState.error:
widget.errorListener();
break;
case PlayingState.ended:
widget.endedListener();
break;
}
});
}
@override
void dispose() {
if(widget.controller != null && mounted) {
widget.controller.stopRendererScanning();
widget.controller.dispose();
}
super.dispose();
}
@override
Widget build(BuildContext context) {
return VlcPlayer(controller: widget.controller, aspectRatio:16 / 9,);
}
}
[Flutter] Flavor를 통한 빌드 변형하기 (0) | 2021.09.08 |
---|---|
[CSS] 스크롤 스냅(Snap) 처리하기 (0) | 2021.08.04 |
[Flutter] VlcPlayer 무한 영상 재생 (0) | 2021.07.13 |
[Flutter] 탭 메뉴(Tab Menu) 만들기 (0) | 2021.06.24 |
[Flutter] ListView의 자동 스크롤 (0) | 2021.06.19 |
댓글 영역