matrix_flutter_app_v2/lib/view/video.dart

67 lines
1.8 KiB
Dart
Raw Normal View History

2023-11-24 20:35:29 +08:00
import 'package:fijkplayer/fijkplayer.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:video_player/video_player.dart';
class CustomVideoPlayer extends StatefulWidget {
final String url;
const CustomVideoPlayer({super.key, required this.url});
@override
State<StatefulWidget> createState() => _CustomVideoPlayerState();
}
class _CustomVideoPlayerState extends State<CustomVideoPlayer> {
// final FijkPlayer player = FijkPlayer();
late VideoPlayerController _controller;
_CustomVideoPlayerState();
@override
void initState() {
super.initState();
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft,DeviceOrientation.landscapeRight]);
// player.setDataSource(widget.url, autoPlay: true);
// player.enterFullScreen();
_controller = VideoPlayerController.networkUrl(Uri.parse(widget.url))
..initialize().then((_) {
// Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
setState(() {
_controller.play();
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
toolbarHeight: 35,
),
// body: Container(
// alignment: Alignment.center,
// child: FijkView(
// player: player,
// ),
body: Center(
child: _controller.value.isInitialized
? AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
)
: Container(),
),
);
}
@override
void dispose() {
SystemChrome.setPreferredOrientations([]);
super.dispose();
// player.dispose();
_controller.dispose();
}
}