KoHtut

YoYo视频播放器

YoYo Video Player 是一个用于 Flutter 的 HLS(.m3u8) 视频播放器。该 video_player 是一个视频播放器,允许您通过选择质量来选择 HLS 视频流。YoYo Player 在底层包装了 video_player,并为开发人员提供了基础架构,以创建自己的 UI 和功能集。

Pub Version (including pre-releases)

功能

  • 您可以选择多种质量并打开
  • 在视频点击时播放/暂停、静音/取消静音,或对视频执行任何操作。
  • 自动隐藏控件。
  • (.m3u8) HLS 视频流支持

安装和设置

  1. 添加依赖项,打开根目录 pubspec.yaml 文件在dependencies:下方添加以下代码
yoyo_player: #latest
  1. 安装依赖项(如果已自动安装,请忽略)

 cd Project directory
 flutter packages get
  1. 在页面中引入库
import 'package:yoyo_player/yoyo_player.dart';

用法

一个简单的使用示例

  YoYoPlayer(
          aspectRatio: 16 / 9,
          url:  "",
          videoStyle: VideoStyle(),
          videoLoadingStyle: VideoLoadingStyle(),
  ),

更改图标

 videoStyle: VideoStyle(
    play : Icon(Icons.play_arrow),
    pause : Icon(Icons.pause),
    fullscreen : Icon(Icon(Icons.fullscreen)),
    forward : Icon(Icons.skip_next),
    backward : Icon(Icons.skip_previous),
 )

更改视频加载

   videoLoadingStyle: VideoLoadingStyle(loading : Center(child: Text("Loading video")),

带字幕播放

        body: YoYoPlayer(
          aspectRatio: 16 / 9,
          //url ( .m3u8 video streaming link )
          //example ( url :"https://sfux-ext.sfux.info/hls/chapter/105/1588724110/1588724110.m3u8" )
          //example ( url :"https://player.vimeo.com/external/440218055.m3u8?s=7ec886b4db9c3a52e0e7f5f917ba7287685ef67f&oauth2_token_id=1360367101" )
          url:  " ",
          videoStyle: VideoStyle(),
          videoLoadingStyle: VideoLoadingStyle(
            loading: Center(
              child: Text("Loading video"),
            ),
          ),
        ),

播放器选项

播放器

属性 类型 描述
url 字符串 视频源(仅支持 .m3u8 和文件)
videoStyle VideoStyle 视频播放器样式
videoLoadingStyle VideoLoadingStyle 视频加载样式
aspectRatio 双精度 视频纵横比 [aspectRatio : 16 / 9 ]
onfullscreen VideoCallback 视频状态全屏
openingvideo VideoCallback 视频类型(例如:mkv, mp4, hls)

播放器自定义样式(VideoStyle)

属性 类型 描述
播放 Widget 您可以使用任何您想要的 Widget
暂停 Widget 您可以使用任何您想要的 Widget
全屏 Widget 您可以使用任何您想要的 Widget
快进 Widget 您可以使用任何您想要的 Widget
快退 Widget 您可以使用任何您想要的 Widget
playedColor 颜色 您可以使用任何您想要的图标样式
qualitystyle TextStyle 您可以使用任何您想要的文本样式
qashowstyle TextStyle 您可以使用任何您想要的文本样式

播放器加载自定义样式(VideoStyle)

属性 类型 描述
加载 Widget 您可以使用任何您想要的加载样式

它是如何创建的?

  • 源 URL (m3u8) 中的数据会通过正则表达式进行检查,并根据相应规则创建并保存子 m3u8 文件。
  • 视频开始播放后,它会立即开始创建子 m3u8 文件。
  • 每次视频完成或主 URL 更改时,都会检查并删除子 m3u8 文件。

子 m3u8 文件创建如下:

  • 如果视频质量为 yoyo[vido-quality].m3u8

  • 如果视频质量和音频质量为 yoyo[video-quality][audio-quality].m3u8

支持 M3U8

  • #EXT-X-MEDIA
  • #EXT-X-STREAM-INF(不适用于 iOS)

播放器截图

贡献者

  • Min Si Thu
  • Ko Htut

MIT 许可

版权所有 (c) 2020 Ko Htut (Ko Min Than Htut)

特此授予任何人复制本软件及相关文档文件(“软件”)的权利,不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供者提供,但须遵守以下条件:

以上版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不附带任何形式的保证,明示或暗示,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是合同、侵权或其他方面的诉讼,因软件或软件中的其他交易而引起或与之相关。

GitHub

查看 Github