1 增加依赖

  # 视频播放  video_player: ^1.0.1

2 播放视频前的筹备
2.1 网络拜访权限
在 ios 目录下的 info.plist 清单文件中配置 iOS设置的http网络拜访权限 :

<key>NSAppTransportSecurity</key><dict>  <key>NSAllowsArbitraryLoads</key>  <true/></dict>

如下图所示

在 android 目录下的 AndroidManifest.xml 清单文件中配置网络申请权限以及http的拜访权限

    <!--    网络申请权限-->    <uses-permission android:name="android.permission.INTERNET" />    <!--内部文件存储权限-->    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


networkSecurityConfig 配置的是 http拜访权限

<?xml version="1.0" encoding="utf-8"?><network-security-config>    <base-config cleartextTrafficPermitted="true" /></network-security-config>


3 视频播放
视频资源的加载以及播放管制全副是通过 VideoPlayerController来操作的

3.1 视频资源的加载

VideoPlayerController  _playerController ;  @override  void initState() {    super.initState();    //网络链接    //VideoPlayerController.network(url);    //VideoPlayerController.file(File(url));    //本地链接    _videoPlayerController =        VideoPlayerController.asset("asset资源门路");   //调用初始化办法   _videoPlayerController.initialize()     //异步执行完的回调     ..whenComplete(() {       //刷新页面       setState(() {});     });  }

3.2 视频播放组件

AspectRatio(   //设置视频的大小 宽高比。长宽比示意为宽高比。例如,16:9宽高比的值为16.0/9.0   aspectRatio: _videoPlayerController.value.aspectRatio,   //播放视频的组件   child: VideoPlayer(_videoPlayerController), ),)

3.3 视频播放相干管制

    //获取以后视频播放的信息    VideoPlayerValue videoPlayerValue = _videoPlayerController.value;    //是否初始化实现    bool initialized = videoPlayerValue.initialized;    //是否正在播放    bool isPlaying = videoPlayerValue.isPlaying;    //以后播放的视频的宽高比例    double aspectRatio = videoPlayerValue.aspectRatio;    //以后视频是否缓存    bool isBuffer = videoPlayerValue.isBuffering;    //以后视频是否循环    bool isLoop = videoPlayerValue.isLooping;    //以后播放视频的总时长    Duration totalDuration = videoPlayerValue.duration;    //以后播放视频的地位    Duration currentDuration = videoPlayerValue.position;    if (initialized) {      // 视频已初始化      if (isPlaying) {        // 正播放 --- 暂停        _videoPlayerController.pause();      } else {        //暂停 ----播放        _videoPlayerController.play();      }      setState(() {});    } else {      //未初始化      _videoPlayerController.initialize().then((_) {        // videoPlayerController.play();        // setState(() {});      });    }