产品动态
公告
pubspec.yaml 中添加如下依赖:ftuiplayer_kit:git:url: https://github.com/LiteAVSDK/TUIPlayerKit_Flutter
FTUIPlayerKit 复制到项目根目录,也可以根据项目结构需要,复制到其他可访问到的目录pubspec.yaml 中添加依赖,并指定 SDK 的目录,这里以根目录为例:ftuiplayer_kit:path: ./FTUIPlayerKit
FTUIPlayerConfig config = FTUIPlayerConfig(licenseUrl: LICENSE_URL,licenseKey: LICENSE_KEY);FTUIPlayerKitPlugin.setTUIPlayerConfig(config);
-keep class com.tencent.** { *; }
FTUIPlayerShortController _shortPlayerController = FTUIPlayerShortController();
_shortPlayerController.setModels(sources);
_shortPlayerController.setVodStrategy(FTUIPlayerVodStrategy());
itemBuilder: (context, index) {// Prevent duplicate creationWeakReference<ShortVodItemControlView>? cacheView = _playerViews[index];ShortVodItemControlView itemControlView;if (null == cacheView || null == cacheView.target) {FTUIPlayerView playerView = FTUIPlayerView();itemControlView = ShortVodItemControlView(playerView, sources[index]);_playerViews[index] = WeakReference(itemControlView);} else {itemControlView = cacheView.target!;}if (_isSetModeled && index == 0) {_isSetModeled = false;onPageChanged(index);} else {_shortPlayerController.preCreateVodPlayer(itemControlView.playerView, index);}return itemControlView;})),
void onPageChanged(int index) async {ShortVodItemControlView itemControlView = getFTUIPlayerView(index);_currentVodController = await _shortPlayerController.bindVodPlayer(itemControlView.playerView, index);itemControlView.playerController = _currentVodController;// start play after bindingawait _shortPlayerController.startCurrent();}
FTUIPlayerConfig config = FTUIPlayerConfig(licenseUrl: LICENSE_URL,licenseKey: LICENSE_KEY);FTUIPlayerKitPlugin.setTUIPlayerConfig(config);
_playerController.setModels(dataList);
_playerController.appendModels(dataList);
name | type | desc |
preloadCount | int | 最大预下载并发数量,不建议设置太大,会影响当前视频播放的网速。 |
preDownloadSize | double | 预下载大小,不建议设置太大,尽快完成预下载,单位 MB。 |
preloadBufferSizeInMB | double | 最大预播放缓冲大小,大小不能超过 preDownloadSize,否则预下载缓存会失效,单位 MB。 |
maxBufferSize | double | 播放过程中的最大缓冲大小,单位 MB。 |
preferredResolution | int | 视频播放偏好分辨率。 |
progressInterval | int | 视频进度回调间隔,默认 500毫秒,单位 ms。 |
renderMode | int | 点播视频平铺模式。 0:代表铺满容器。 1:代表跟随视频比例调整。 |
enableSuperResolution | bool | 是否开启超分。 true:开启。 false:关闭。 |
_playerController.setVodStrategy(FTUIPlayerVodStrategy());
TUIVodPlayerController vodController = await _shortPlayerController.bindVodPlayer(itemControlView.playerView, index);
_shortPlayerController.preCreateVodPlayer(itemControlView.playerView, index);
await _shortPlayerController.startCurrent();
_shortPlayerController.release();
_currentVodController.startPlay(souce);
_currentVodController.pause();
_currentVodController.resume();
_currentVodController.setRate(1.0);
_currentVodController.setMute(true);
_currentVodController.seekTo(1.0);
double videoDuration = await _currentVodController.getDuration();
double curPlayTime = await _currentVodController.getCurrentPlayTime();
double curPlayTime = await _currentVodController.isPlaying();
playerController?.addListener(FTUIVodControlListener(onVodPlayerEvent: (event) {// player event callback, for related constants, please refer to TXVodPlayEvent.int eventCode = event[TXVodPlayEvent.EVT_EVENT];},onVodControllerBind: () {// slide to the current video},onVodControllerUnBind: () {// the current video has been swiped away; you can perform some resource release operations.}));
widget.playerController?.removeListener(listener);
widget.playerController?.clearListener();
文档反馈