Flutter 中的视频播放器

2019-09-16 16:22:15 浏览数 (1)

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

代码如下:

代码语言:javascript复制
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 的,所以两个第三方都需要引入:

代码语言:javascript复制
chewie: ^0.9.7
video_player: ^0.10.2 1

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

以上。

0 人点赞