You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.1 KiB

import 'package:flutter/material.dart';
import 'package:chewie/chewie.dart';
import 'package:video_player/video_player.dart';
// import 'package:fijkplayer/fijkplayer.dart';
// import 'package:recook/constants/app_image_resources.dart';
// import 'package:recook/constants/constants.dart';
// import 'package:recook/widgets/custom_cache_image.dart';
// import 'package:recook/widgets/custom_image_button.dart';
// import 'package:video_player/video_player.dart';
class VideoView extends StatefulWidget {
final String videoUrl;
VideoView({Key key, this.videoUrl}) : assert(videoUrl != null && videoUrl.length > 0, "video url 不能为空");
@override
_VideoViewState createState() => _VideoViewState();
}
class _VideoViewState extends State<VideoView> {
// final FijkPlayer player = FijkPlayer();
VideoPlayerController _videoController;
ChewieController _chewieController;
@override
void initState() {
_videoController = VideoPlayerController.network(widget.videoUrl);
_chewieController = ChewieController(
videoPlayerController: _videoController,
aspectRatio: 16 / 9,
autoPlay: !true,
showControls: true,
// 占位图
placeholder: new Container(
color: Colors.grey,
),
// 是否在 UI 构建的时候就加载视频
autoInitialize: true,
// looping: true,
);
// player.setDataSource(widget.videoUrl, autoPlay: true);
super.initState();
}
@override
Widget build(BuildContext context) {
return _videoView();
}
_videoView(){
_chewieController.pause();
return Container(
// width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.width/16*10,
width: double.infinity,
height: double.infinity,
child: Chewie(controller: _chewieController,),
);
}
// @override
// void deactivate() {
// super.deactivate();
// if (player.state != FijkState.stopped && player.state != FijkState.completed) {
// player.pause();
// }
// }
@override
void dispose() {
_videoController.dispose();
_chewieController.dispose();
super.dispose();
}
}