Flutter使用video_player实现视频播放

通过flutter的video_player插件
1.首先在 pubspec.yaml 文件下添加 video_player: ^2.6.0,如果你是在 vscode开发的,ctrl + s
会自动加载依赖,否则需要在终端下 pub get

dependencies:
  flutter:
    sdk: flutter

  extended_nested_scroll_view: ^5.0.0
  video_player: ^2.6.0
  cupertino_icons: ^1.0.2

2.安卓的话使用 video_player 是需要在 根目录下的 android/app/src/main 下的 AndroidManifest文件添加
<uses-permission android:name="android.permission.INTERNET" /> 申请网络访问权限
在这里插入图片描述
3.初始化

import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';

class VideoPage extends StatefulWidget {
  const VideoPage({super.key});

  
  State<VideoPage> createState() => _VideoPageState();
}

class _VideoPageState extends State<VideoPage> {
  late TabController _tabController;

  // 视频
  late VideoPlayerController _controller;

  
  void initState() {
    // TODO: implement initState
    super.initState();
    _tabController = TabController(length: tabs.length, vsync: this);
    _controller = VideoPlayerController.network("视频地址")
      ..initialize().then((a) {
        setState(() {});
      });
  }
}

4.使用

1.显示内容
Center(
   child: _controller.value.isInitialized
       ? AspectRatio( // 这个容器是根据子元素大小来的
           aspectRatio: _controller.value.aspectRatio, // 设置成视频的大小
           child: VideoPlayer(_controller), // 视频内容
         )
       : Container( // 这里是视频还没加载好显示的内容
           width: 100,
           height: 100,
           color: Colors.red,
         ),
 )
 2.控制状态
 floatingActionButton: FloatingActionButton(
	   //随便定义一个按钮用于测试
	   onPressed: () {
	     setState(() {
	       _controller.value.isPlaying //设置播放状态
	           ? _controller.pause()
	           : _controller.play();
	     });
	   },
	   child: Icon(
	     _controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
	   ),
 )

5.如果使用的时候碰到 One or more plugins require a higher Android SDK version 这个问题,可以在 android/app/src/build.gradle 文件,把 compileSdkVersion 改为需要的版本。
在这里插入图片描述
6.最后附上成果
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值