Flutter视频播放插件better_player的使用
Flutter视频播放插件better_player的使用
Better Player #
这是一个高级视频播放器插件。它解决了许多常见的用例,并且易于运行。
介绍 #
此插件基于Chewie。Chewie是一个非常棒的插件,在许多情况下表现良好。Better Player是Chewie想法的延续。Better Player修复了常见问题,增加了更多的配置选项,并解决了典型用例。
特性:
✔️ 修复了常见问题
✔️ 增加了高级配置选项
✔️ 重构了播放器控制
✔️ 支持播放列表
✔️ 支持在ListView中播放视频
✔️ 支持字幕:(格式:SRT, WEBVTT,支持HTML标签;来自HLS的字幕;视频的多个字幕)
✔️ 支持HTTP头
✔️ 支持BoxFit视频
✔️ 支持播放速度
✔️ 支持HLS(轨道,字幕(也包括分段),音频轨道选择)
✔️ 支持DASH(轨道,字幕,音频轨道选择)
✔️ 支持替代分辨率
✔️ 支持缓存
✔️ 支持通知
✔️ 支持画中画
✔️ 支持DRM(令牌,Widevine,FairPlay EZDRM)
✔️ 更多功能...
文档 #
重要信息 #
该插件仍在开发中。每个版本都可能有破坏性更改。该插件是免费的部分时间开发。如果您需要其他可用在pub dev上的播放器支持的功能,可以自由创建PR。所有有价值的贡献都是受欢迎的!
完整示例代码
import 'package:flutter/material.dart';
import 'package:better_player/better_player.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Better Player Demo',
theme: ThemeData(
primarySwatch: Colors.green,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
// 初始化BetterPlayerController
BetterPlayerController _betterPlayerController;
[@override](/user/override)
void initState() {
super.initState();
// 配置BetterPlayerController
_betterPlayerController = BetterPlayerController(
BetterPlayerConfiguration(
aspectRatio: 16 / 9,
autoPlay: true,
looping: false,
),
);
// 设置视频源
_betterPlayerController.setupDataSource(BetterPlayerDataSource(
BetterPlayerDataSourceType.network,
"https://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_20mb.mp4",
));
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Better Player Demo"),
),
body: Center(
child: BetterPlayer(
controller: _betterPlayerController,
),
),
);
}
}
更多关于Flutter视频播放插件better_player的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter视频播放插件better_player的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用better_player
插件来播放视频的示例代码。better_player
是一个功能强大的Flutter视频播放插件,支持多种视频格式和网络视频播放。
首先,确保你已经在pubspec.yaml
文件中添加了better_player
依赖:
dependencies:
flutter:
sdk: flutter
better_player: ^0.0.x # 请替换为最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,是一个简单的示例代码,展示如何使用better_player
来播放本地和网络视频:
import 'package:flutter/material.dart';
import 'package:better_player/better_player.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Better Player Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: VideoPlayerScreen(),
);
}
}
class VideoPlayerScreen extends StatefulWidget {
@override
_VideoPlayerScreenState createState() => _VideoPlayerScreenState();
}
class _VideoPlayerScreenState extends State<VideoPlayerScreen> {
BetterPlayerController? _betterPlayerController;
@override
void initState() {
super.initState();
// 本地视频示例
String localVideoUrl = 'assets/sample_video.mp4'; // 确保在pubspec.yaml中声明了assets
// 网络视频示例
String networkVideoUrl = 'https://www.example.com/sample_video.mp4';
// 初始化BetterPlayerController
_betterPlayerController = BetterPlayerController(
BetterPlayerConfiguration(
aspectRatio: 16 / 9,
autoPlay: true,
controlsConfiguration: BetterPlayerControlsConfiguration(
enableSubtitles: true,
enablePlaybackSpeed: true,
),
),
betterPlayerDataSource: BetterPlayerDataSource.network(networkVideoUrl),
// 如果要播放本地视频,请使用以下代码替换上面一行
// betterPlayerDataSource: BetterPlayerDataSource.asset(localVideoUrl),
);
}
@override
void dispose() {
_betterPlayerController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Better Player Example'),
),
body: Center(
child: _betterPlayerController != null
? BetterPlayer(controller: _betterPlayerController!)
: Container(),
),
);
}
}
在上面的代码中,我们创建了一个简单的Flutter应用,其中包含一个视频播放页面。BetterPlayerController
用于管理视频播放的配置和数据源。我们提供了两个示例视频URL:一个是本地视频(确保你在pubspec.yaml
中声明了assets),另一个是网络视频。
请注意,如果你选择播放本地视频,需要在pubspec.yaml
文件中声明视频资产:
flutter:
assets:
- assets/sample_video.mp4
确保将视频文件放在assets
文件夹中,并且文件名与pubspec.yaml
中声明的文件名相匹配。
这样,你就可以在Flutter应用中使用better_player
插件来播放视频了。