flutter_aliplayer 7.12.0
flutter_aliplayer: ^7.12.0 copied to clipboard
Aliyun Player With Flutter
7.12.0 #
🚀 更新改动 #
- 播放器 SDK 升级到 7.12.0
- 修复了 removeSource 移除失败的 bug
- 修复了 同时创建多个不同类型的 player 时出现的 API 调用异常
- 新增 ListPlayer 相关API 及 部分播放器通用API
✨ 新增功能 #
新增 API
AliPlayer 使用示例
setDefaultResolution: 设置多码率播放时的默认起播清晰度 setDefaultBandWidth: 设置多码率播放时的默认起播码率
// 创建单实例播放
FlutterAliplayer fAliplayer = FlutterAliPlayerFactory.createAliPlayer();
// 设置默认起播清晰度
fAliplayer.setDefaultResolution(1920 * 1080);
// 设置默认起播码率
fAliplayer.setDefaultBandWidth(200000);
ListPlayer 使用示例
// 创建列表播放器
FlutterAliListPlayer fAliListPlayer = FlutterAliPlayerFactory.createAliListPlayer(playerId: 'aliListPlayer');
// 设置默认起播清晰度
fAliListPlayer.setDefaultResolution(1920 * 1080);
// 设置默认起播码率
fAliListPlayer.setDefaultBandWidth(200000);
// 配置基准预加载时长 单位为 ms
fAliListPlayer.updatePreloadConfig(1500);
// 配置动态预加载的递减的offset
fAliListPlayer.enablePreloadStrategy(true);
fAliListPlayer.setPreloadStrategy("{\"algorithm\": \"sub\",\"offset\": \"200\"}");
setPlayerScene
说明: 设置播放器场景,AliPlayer/ListPlayer 可以通用。播放器会根据场景修改播放设置,播放更流畅丝滑。
/// 播放场景
enum PlayerScene {
NONE,
LONG, // 长视频
MEDIUM, // 中视频
SHORT, // 短视频
LIVE, // 直播
RTS_LIVE, // RTS 拉流
}
// 设置长视频场景
fAliplayer.setPlayerScene(PlayerScene.LONG);
// 设置短视频场景
fAliListPlayer.setPlayerScene(PlayerScene.SHORT);
setPreloadScene
说明: 设置预加载模式,在 listPlayer + 多码率HLS视频播放场景下,支持集成方预加载与当前播放清晰度一致的流,并且可以根据业务情况选择预加载模式。
/// 预加载场景
enum PreloadScene {
SCENE_NONE, // 默认
SCENE_VERY_SHORT, // 极短视频
SCENE_SHORT, // 短视频
SCENE_MIDDLE, // 中视频
SCENE_LONG, // 长视频
}
fAliListPlayer.setPreloadScene(PreloadScene.SCENE_SHORT);
7.11.0 #
🚀 更新 Native SDK #
- 播放器 SDK 升级到 7.11.0
- RTS SDK 升级到 7.12.0
✨ 新增功能 #
Android 支持 AliDisplayView 选项
说明:HDR 视频在 Android 端需使用
AliDisplayView实现画面旋转、填充模式及镜像效果。
使用示例:
AliPlayerView(
onCreated: onViewPlayerCreated,
x: x,
y: y,
width: width,
height: height,
aliPlayerViewType: AliPlayerViewTypeForAndroid.displayview,
);
自动刷新数据源
说明:启用播放源自动刷新功能可防止因鉴权过期导致的播放中断。当播放源失效时,会触发回调以获取新的有效地址,确保视频持续流畅播放。 功能限制:仅支持 VidAuth 和配置了鉴权机制的视频 URL。
URL 源过期回调 (OnURLSourceExpiredCallBack):
fAliplayer.setOnURLSourceExpiredListener(
call: (String? expiredUrl) async {
print('the expiredUrl is $expiredUrl');
return 'your Video URL'; // 返回新 URL,或返回 null 表示放弃刷新
},
);
VidAuth 过期回调 (OnAuthSourceExpiredCallBack):
fAliplayer.setOnVidAuthExpiredListener(
call: (VidAuth? vidAuth) async {
return VidAuth(
vid: "your videoId",
playAuth: "your playAuth",
);
},
);
7.10.0 #
升级 Native 播放器SDK 到 7.10.0
7.9.0 #
🚀 更新 Native SDK 到 7.9.1
✨ 新增功能
FlutterAliMediaLoaderV2 预加载模块
全面支持多种数据源预加载:
- ✅ URL 源:直接通过视频 URL 进行预加载
- ✅ VidAuth 源:支持阿里云视频点播标准鉴权方式(VID + PlayAuth)
- ✅ VidSts 源:支持 STS 临时令牌鉴权方式(VID + AccessKey + SecurityToken) 统一预加载接口:通过单一 API 管理所有类型视频源的预加载任务
任务管理能力:支持任务添加、状态监听、资源释放等完整生命周期管理
示例
1、创建 FlutterAliMediaLoaderV2 实例
FlutterAliMediaLoaderV2 loaderV2 = FlutterAliMediaLoaderV2();
2、设置监听
onError异常监听
loaderV2.onError = (ErrorInfo error) {
print("MediaLoaderV2 Code:${error.errorCode}, Msg:${error.errorMsg} Extra: ${error.errorExtra}");
};
onCompleted任务完成监听
loaderV2.onCompleted = (taskId, urlOrVid) {
};
onCanceled任务取消监听
loaderV2.onCanceled = (taskId, urlOrVid) {
};
3、setPreloadConfig 设置预加载任务参数
仅适用于多码率视频, defaultBandWidth、defaultResolution、defaultQuality三者任选其一即可。
PreloadConfig config = PreloadConfig();
config.duration = 1000; // 默认为 1000
config.defaultQuality = "FD";
config.defaultBandWidth = 200000;
config.defaultResolution = 1920 * 1080;
loaderV2.setPreloadConfig(config);
4、addTask 添加任务并获取 taskId
- UrlSource
loaderV2.addTask(UrlSource(videoUrl: "videoUrl")).then((taskId) {
print("MediaLoaderV2: taskId: $taskId");
});
- VidAuth
VidAuth auth = VidAuth(
vid: "your videoId",
playAuth: "your playAuth",
region: "your region",
);
loaderV2.addTask(auth).then((taskId) {
print("MediaLoaderV2: taskId: $taskId");
});
- VidSts
VidSts vidSts = VidSts(
vid: "your vid",
accessKeyId: "your accessKeyId",
accessKeySecret: "your accessKeySecret",
securityToken: "your securityToken",
);
loaderV2.addTask(vidSts).then((taskId) {
print("MediaLoaderV2: taskId: $taskId");
});
5、pauseTask(taskId) 暂停任务
loaderV2.pauseTask(taskId);
6、resumeTask(taskId) 恢复任务
loaderV2.resumeTask(taskId);
7、cancelTask(taskId) 取消任务
loaderV2.cancelTask(taskId);
8、dispose 销毁MedialoaderV2
loaderV2.dispose();
🗑️ API 废弃与删除
| API 方法 | 替代方案 | 说明 |
|---|---|---|
destroy() |
release() |
播放器销毁逻辑已统一至 release() |
setRate() |
setSpeed() |
播放速率设置功能已经统一至 setSpeed() |
getCacheConfig() |
- | 过时方法,请清除相关API调用 |
setCacheConfig(Map) |
- | 过时方法,请清除相关API调用 |
🗑️ 常量 删除
| 常量 | 替代方案 | 说明 |
|---|---|---|
AVP_SCALINGMODE_XXXXX |
ScaleMode |
统一使用 ScaleMode |
AVP_ROTATE_XXXX |
RotateMode |
统一使用 RotateMode |
AVP_MIRRORMODE_XXXX |
MirrorMode |
统一使用 MirrorMode |
🔁 重命名的 API 为提升语义准确性,以下方法已重命名
getRate => getSpeed
// ❌ 旧用法(已失效)
double rate = await player.getRate();
// ✅ 新用法
double speed = await player.getSpeed();
7.8.0 #
- 升级 播放器SDK 到 7.8.0
- 新增 DownloadEvent 、AliMediaInfo、AliTrackInfo
7.4.0 #
- 修复 setScaleMode 枚举错误问题
- 升级 播放器SDK 到 7.4.0
7.3.0 #
- 升级播放器SDK 到7.3.0
- 升级RtsSDK(超低延迟组件)到 7.3.0
7.2.1 #
- 增加 setLogInfoCallBack SDK 日志回调方法
- 增加 getLogLevel 对 iOS 的方法支持
- 移除 registerWith 方法,修复因 registerWith() 导致的 Android端 无法编译的问题
7.2.0 #
- 更新 播放器SDK 内核 至 7.2.0
- 更新 一体化SDK 内核 至 7.1.0
7.1.0 #
- 更新 RTS 低延迟直播组件 内核 至 7.2.0
- 更新 播放器 SDK 内核 至 7.1.0
7.0.0 #
- 更新 SDK 内核 至 7.0.0
- 新增 onSubTrackReady 监听
- 修复一些Bug
6.19.0 #
- 更新 Native SDK 至 6.19.0
- 新增ios画中画状态监听及按钮透出
- 增加abr升路上限功能
- 修复部分已知问题
6.18.0 #
- 更新 Native SDK 至 6.18.0
- 新增预渲染功能
- 修复部分已知问题,加快首帧渲染显示
6.17.0 #
- 更新 Native SDK 至 6.17.0,使用独立SDK(AliPlayerSDK)代替一体化SDK(AliVCSDK_InteractiveLive),提供useAIOFramework开关支持SDK内核切换
6.7.0 #
- 更新 Native SDK 至 6.7.0
- 解决与推流插件 flutter_livepush_plugin 冲突问题,使用一体化SDK(AliVCSDK_InteractiveLive)代替独立SDK(AliPlayerSDK)
5.5.6 #
- 更新播放器 SDK 至 5.5.6.0,并增加对应 SDK 接口
- Demo 增加水印,打点,缩略图,画中画等功能
5.4.10 #
- 修复 Android 创建 ListPlayer 出现错误日志问题
- 修复 Android 调用截图接口,在图片未完全保存到本地时,回调截图成功问题
- iOS 增加接口,用于下载后获取全路径
- AliPlayerView 增加 aliPlayerViewType 属性,用于指定渲染 View 的类型(仅对 Android 有效)
- Android 适配低版本 SDK 运行报错问题
- iOS 修改为本地集成播放器原生SDK
5.4.9-dev.1.3 #
- iOS 修改为本地集成播放器原生SDK
5.4.9-dev.1.2 #
- Android 适配低版本 SDK 运行报错问题
5.4.9-dev.1.1 #
- AliPlayerView 增加 aliPlayerViewType 属性,用于指定渲染 View 的类型(仅对 Android 有效)
5.4.9-dev.1.0 #
- 修复 Android 创建 ListPlayer 出现错误日志问题
- 修复 Android 调用截图接口,在图片未完全保存到本地时,回调截图成功问题
- iOS 增加接口,用于下载后获取全路径
5.4.9 #
- 更新播放器 SDK(更新 OpenSSL)
- 修复 Android 播放 hdr 视频问题
- 修复 Android、iOS 部分接口调用报错问题
5.4.8-dev.1.2 #
- 修复 Android 播放报错问题
- 修复 iOS 播放时,偶现 onInfo 没有回调的问题
- flutter 接口增加空类型支持
5.4.8-dev.1.0 #
- 更新 Anddroid、iOS播放器SDK为 5.4.8.0
- 移除 flutter_aliplayer_artc 和 flutter_rts,需要使用 Rts SDK,请自行在 Android、iOS 项目里添加依赖
- 新增接口
5.4.3-dev.5 #
- 增加 Sei 、SubtitleHeader 接口调用
- 增加 FlutterAliPlayerFactory.loadRtsLibrary() 接口,(Android)
- 修复 5.4.2 编译报错问题
- 修复集成 Rts 低延时直播无法播放问题
- 修复 AliPlayer、AliListPlayer、AliLiveShiftPlayer 依次创建后,先创建的对象失效问题
5.4.2 #
阿里云播放器版本更新至:5.4.2.0 flutter_aliplayer_artc : ^5.4.2 flutter_rts : ^1.9.0
- 增加直播时移功能(测试中)
- 修复下载无法设置 region 问题
- 重复创建 AliPlayer 对象,导致先创建的 AliPlayer 对象回调监听失效问题
5.4.0 #
阿里云播放器版本更新至:5.4.0 flutter_aliplayer_artc : ^5.4.0 flutter_rts : ^1.6.0
- 支持多个播放实例,具体可以参照demo代码
multiple_player_page.dart - 播放器回调添加playerId参数,用于多实例调用的区分
- 添加
setPlayerView方法,创建播放器后,需要绑定view到播发器 - 去除原列表播放器管道,在android和iOS源码层AliListPlayer与AliPlayer公用一个管道
initService、getSDKVersion以及log级别开关等方法改为静态方法,与原生sdk对齐
5.2.2 #
- Docking Aliyun Player SDK (PlatForm include Android、iOS)
- RenderView: Android uses TextureView,iOS uses UIView