# flutter_plugins_polyv **Repository Path**: courage822/flutter_plugins_polyv ## Basic Information - **Project Name**: flutter_plugins_polyv - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-07-15 - **Last Updated**: 2021-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # polyv_video_plugin 集成保利威视频直播SDK,实现了回放、直播、弹幕等功能的flutter组件封装 ## Getting Started 添加依赖 ```yaml dependencies: ... polyv_video_plugin: git: url: https://gitee.com/BeiJingZhiJinDaPengJiaoYu/flutter_plugins_polyv.git ``` 页面引用 ```dart ///直播 import 'package:polyv_video_plugin/polyv_live_video_plugin.dart'; ///回放 import 'package:polyv_video_plugin/polyv_video_plugin.dart'; ``` ### 初始化 ```dart /// widget使用布局 Container( height: 240, child: PolyvLivePlayer( onCreated: onViewPlayerCreated, config: "LfN9Td+rVEflu4/wAePp8HlQbRG3h5PiwBhO0S9wHRk2hfqEL3RAo/bDtFBJUAhid7OuJkVoZ8gKQks9sMEFhU4A/eSIufkH13e2Hzy/3Rtzs6JnVNjSknRqGNlbZV8MYveM5xXkKTDJLJxk2vfL1A==", aesKey: "VXtlHmwfS2oYm0CZ", iv: "2u9gDPKdX6GyQJKU", ), ) ``` ```dart ///以直播为例 PolyvLiveController _liveVideoController; ... void onViewPlayerCreated(viewPlayerController) { _liveVideoController = viewPlayerController; } ``` ### listen 播放器监听事件 listen(callback(Map arg)) #### callback Function(Map arg) ```dart { "type": "click" /// click 单击事件 /// doubleClick 双击事件 不支持PolyvLivePlayer /// leftUp 左侧上滑 /// leftDown 左侧下滑 /// rightUp 右侧上滑 /// rightDown 右侧下滑 /// swipeLeft 向左滑动 /// swipeRight 向右滑动 } ``` #### 示例代码 ```dart _liveVideoController.listen((Map arg) async { print(arg); switch (arg["type"]) { case "leftUp": int brightness = await _liveVideoController.getBrightness(); _liveVideoController.setBrightness(brightness + 5); break; case "leftDown": int brightness = await _liveVideoController.getBrightness(); _liveVideoController.setBrightness(brightness - 5); break; case "rightUp": int volume = await _liveVideoController.getVolume(); _liveVideoController.setVolume(volume + 10); break; case "rightDown": int volume = await _liveVideoController.getVolume(); _liveVideoController.setVolume(volume - 10); break; } }); ``` ### setLivePlay 播放直播课程 setLivePlay(params) #### params userId: 用户ID(必填) channelId: 课程channelID (必填) #### 示例代码 ```dart _liveVideoController.setLivePlay(channelId: "1",userId: "2"); ``` ### start 开始播放 start() #### 示例代码 ```dart _liveVideoController.start(); ``` ### pause 暂停 pause() #### 示例代码 ```dart _liveVideoController.pause(); ``` ### resume 继续 resume() #### 示例代码 ```dart _liveVideoController.resume(); ``` ### stop 停止 stop() #### 示例代码 ```dart _liveVideoController.stop(); ``` ### isPlaying 是否在播放中 isPlaying() #### callback bool true||false #### 示例代码 ```dart if (_liveVideoController.isPlaying()){ print("正在播放中"); } ``` ### destroy 销毁播放器 destroy() #### 示例代码 ```dart _liveVideoController.destroy(); ``` ### getDuration 获取视频长度 getDuration() #### callback int 毫秒 #### 示例代码 ```dart print(_liveVideoController.getDuration()); /// 1000000 ``` ### getCurrentPosition 获取当前播放位置 getCurrentPosition() #### callback int 毫秒 #### 示例代码 ```dart print(_liveVideoController.getCurrentPosition()); /// 50000 ``` ### getBufferPercentage 获取缓冲进度 getBufferPercentage() #### callback int 0-100 #### 示例代码 ```dart print(_liveVideoController.getBufferPercentage()); /// 50 ``` ### getBrightness 获取屏幕亮度 getBrightness() #### callback int 0-100 #### 示例代码 ```dart print(_liveVideoController.getBrightness()); /// 80 ``` ### getVolume 获取当前音量 getVolume() #### callback int 0-100 #### 示例代码 ```dart print(_liveVideoController.getVolume()); /// 50 ``` ### setBrightness 设置屏幕亮度 setBrightness(int value) #### 示例代码 ```dart _liveVideoController.setBrightness(80); ``` ### setVolume 设置音量 setVolume(int value) #### 示例代码 ```dart _liveVideoController.setVolume(20); ``` ### initDanMu 初始化弹幕 initDanMu({padding, textSize, textColor}) #### params padding: 内边距 textSize: 弹幕字体大小 textColor: 字体颜色 仅支持`"#ff0000"`格式 #### 示例代码 ```dart _liveVideoController.initDanMu(padding: 10, textColor: "#ff0000", textSize: 20); ``` ### sendDanMu 发送弹幕 sendDanMu(String message) #### 示例代码 ```dart _liveVideoController.sendDanMu("我是一只快乐的小跳蛙"); ``` ### showDanMu 显示弹幕 showDanMu() #### 示例代码 ```dart _liveVideoController.showDanMu(); ``` ### hideDanMu 隐藏弹幕 hideDanMu(); #### 示例代码 ```dart _liveVideoController.hideDanMu(); ```