Flutter Vimeo视频播放插件vimeo_video_player的使用
Flutter Vimeo视频播放插件vimeo_video_player的使用
插件概述
vimeo_video_player
是一个用于在Flutter应用中播放Vimeo视频的插件。它利用了InAppWebView来实现流畅的视频播放,支持多种自定义设置和事件回调,适用于Android、iOS、Web、Mac、Windows等平台。
关键特性
- 简单易用:只需提供Vimeo视频ID即可轻松播放视频。
- 高度可定制:支持配置如自动播放、循环播放、静音、显示标题、显示作者等选项。
- 丰富的事件回调:包括播放准备完成、播放开始、暂停、结束、进度调整等事件监听。
基本使用
导入包
首先,在pubspec.yaml
文件中添加依赖:
dependencies:
vimeo_video_player: ^latest_version
然后在Dart文件中导入:
import 'package:vimeo_video_player/vimeo_video_player.dart';
最简单的用法
最基础的用法只需要提供视频ID:
VimeoVideoPlayer(
videoId: '12860646',
);
参数详解
必填参数
参数 | 描述 |
---|---|
videoId |
定义要播放的Vimeo视频ID,必填项且不能为空 |
可选参数(带默认值)
参数 | 默认值 | 描述 |
---|---|---|
isAutoPlay |
false |
是否自动播放 |
isLooping |
false |
是否循环播放 |
isMuted |
false |
是否静音播放 |
showTitle |
false |
是否显示视频标题 |
showByline |
false |
是否显示视频作者 |
showControls |
true |
是否显示播放控制条 |
enableDNT |
true |
是否启用Do Not Track模式 |
backgroundColor |
Colors.black |
InAppWebView的背景颜色 |
其他可选参数
参数 | 描述 |
---|---|
onReady |
当播放器准备好时触发的回调 |
onPlay |
当视频开始播放时触发的回调 |
onPause |
当视频暂停时触发的回调 |
onFinish |
当视频播放结束时触发的回调 |
onSeek |
当视频播放位置被修改时触发的回调 |
onInAppWebViewCreated |
当WebView创建时触发的回调 |
onInAppWebViewLoadStart |
当WebView开始加载URL时触发的回调 |
onInAppWebViewLoadStop |
当WebView加载URL完成时触发的回调 |
onInAppWebViewReceivedError |
当WebView加载请求出错时触发的回调 |
示例代码
以下是一个完整的示例代码,展示了如何在Flutter应用中使用vimeo_video_player
插件播放Vimeo视频,并处理加载状态和WebView控制器。
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:vimeo_video_player/vimeo_video_player.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: MyHomePage(),
debugShowCheckedModeBanner: false,
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
/// 用于通知视频是否已加载
bool isVideoLoading = true;
/// WebView控制器
InAppWebViewController? webViewController;
@override
void dispose() {
super.dispose();
webViewController?.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
body: SafeArea(
child: Stack(
children: [
VimeoVideoPlayer(
videoId: '12860646', // 替换为你的Vimeo视频ID
isAutoPlay: true, // 自动播放
onInAppWebViewCreated: (controller) {
webViewController = controller;
},
onInAppWebViewLoadStart: (controller, url) {
setState(() {
isVideoLoading = true;
});
},
onInAppWebViewLoadStop: (controller, url) {
setState(() {
isVideoLoading = false;
});
},
),
if (isVideoLoading)
const Center(child: CircularProgressIndicator()),
],
),
),
);
}
}
依赖项
- flutter_inappwebview: ^6.1.5
贡献指南
欢迎贡献者提交Pull Request进行开发或改进。
报告问题或功能请求
如果您遇到问题或有功能请求,请提供以下信息以帮助我们更好地理解问题:
- 库版本
- 代码片段
- 相关日志
- 设备规格(制造商、操作系统版本等)
- 复现问题的截图或视频
- 使用的库
许可证
vimeo_video_player
遵循MIT许可证。
联系我们
如果您有任何问题或建议,或者想分享使用我们开源库的项目链接,请发送邮件至sales@mindinventory.com。
访问我们的网站mindinventory.com,了解更多关于我们的服务。
希望以上内容能帮助您更好地理解和使用vimeo_video_player
插件!如果有任何疑问,欢迎随时提问。
更多关于Flutter Vimeo视频播放插件vimeo_video_player的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复