Flutter 中的视频播放器

  • 2019 年 10 月 4 日
  • 筆記

在Flutter中,官方提供了一个 video_player 插件可以播放视频,但是 video_player 有一些局限性。没法控制底部播放进度等。所以我们主要给大家讲解一个第三方的视频播放库 chewiechewie 是一个非官方的第三方视频播放组件,它是基于 video_player 的。Chewie相对于 video_player 来说,有控制栏和全屏的功能。

代码如下:

import 'package:flutter/material.dart';  import 'package:chewie/chewie.dart';  import 'package:video_player/video_player.dart';    class VideoPlayerPage extends StatefulWidget {    VideoPlayerPage({Key key}) : super(key: key);      _VideoPlayerPageState createState() => _VideoPlayerPageState();  }    class _VideoPlayerPageState extends State<VideoPlayerPage> {    VideoPlayerController videoPlayerController;    ChewieController chewieController;      @override    void initState() {      super.initState();      //配置视频地址      videoPlayerController = VideoPlayerController.network(          'http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4');      chewieController = ChewieController(        videoPlayerController: videoPlayerController,        aspectRatio: 3 / 2, //宽高比        autoPlay: true, //自动播放        looping: true, //循环播放      );    }      @override    Widget build(BuildContext context) {      return Scaffold(        appBar: AppBar(title: Text("视频播放器")),        body: Center(          //视频播放器          child: Chewie(            controller: chewieController,          ),        ),      );    }      @override    void dispose() {      /**       * 当页面销毁的时候,将视频播放器也销毁       * 否则,当页面销毁后会继续播放视频!       */      videoPlayerController.dispose();      chewieController.dispose();      super.dispose();    }  }

效果如下:

有以下几点需要注意:

1,chewie是依赖 video_player 的,所以两个第三方都需要引入:

chewie: ^0.9.7  video_player: ^0.10.2+1

2,一定要在页面销毁的时候销毁试图播放器,不然的话,在返回其他页面或者跳入其他页面的时候,原来页面的视频还在播放。

以上。

Exit mobile version