import 'package:video_player/video_player.dart';
import 'package:flutter/material.dart';
class VideoPage extends StatefulWidget {
final String url;
VideoPage({Key key, this.url}) : super(key: key);
@override
_VideoPageState createState() => _VideoPageState();
}
class _VideoPageState extends State<VideoPage> {
VideoPlayerController _controller;
@override
void initState() {
_controller =
VideoPlayerController.network(widget.url.replaceFirst('http', 'https'))
..initialize().then((_) {
setState(() {
_controller.play();
});
});
// Use the controller to loop the video.
_controller.setLooping(true);
super.initState();
}
@override
void dispose() {
// Ensure disposing of the VideoPlayerController to free up resources.
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('预告片'),
),
body: Center(
child: _controller.value.initialized
? AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
)
: CircularProgressIndicator(),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
if (_controller.value.isPlaying) {
_controller.pause();
} else {
_controller.play();
}
});
},
child: Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
),
);
}
}
详细介绍:https://www.jianshu.com/p/caf7e3cd0df6
网友评论