往期知识点整理
1 场景描述
示例场景:AVPlayer播放视频ArkTS实现,创建AVPlayer,设置播放资源和窗口,设置播放参数,播放控制(播放/暂停/跳转),重置,销毁资源,播放完成后切换视频。
2 方案描述
AVPlayer:功能较完善的音视频播放ArkTS API,集成了流媒体和本地资源解析,媒体资源解封装,视频解码和渲染功能,适用于对媒体资源进行端到端播放的场景,可 直接播放mp4、mkv等格式的视频文件 。本示例就是使用avplayer进行视频播放的实现,功能包括多种方式播放视频,以及对于视频播放的控制。
具体实现步骤可分为Step1: 调用createAVPlayer()创建AVPlayer实例。Step2: 设置业务需要的监听事件,搭配全流程场景使用。Step3: 设置窗口:获取并设置属性SurfaceID,用于设置显示画面。应用需要从XComponent组件获取surfaceID。同时设置load事件,应该改成并在onload事件回调中完成设置播放资源的操作Step4: 注册avplayer回调函数Step5: 调用相关接口实现播放play(),暂停pause(),跳转seek()等操作。
2.1 创建AVPlayer实例
调用createAVPlayer()创建AVPlayer实例
1.通过url设置网络地址来实现播放
async avPlayerLiveDemo() {
// 创建avPlayer实例对象
let avPlayer: media.AVPlayer = await media.createAVPlayer();
// 创建状态机变化回调函数
this.setAVPlayerCallback(avPlayer);
avPlayer.url = 'https://xxxx; // 播放网络视频
}
}
2.使用fs文件系统打开沙箱地址获取媒体文件地址并通过dataSrc属性进行播放
async avPlayerLiveDemo() {
// 创建avPlayer实例对象
let avPlayer: media.AVPlayer = await media.createAVPlayer();
// 创建状态机变化回调函数
this.setAVPlayerCallback(avPlayer);
avPlayer.url = 'https://sns-video-bd.xhscdn.com/stream/110/258/01e602cadc11542d010370038e7ae8b418_258.mp4'; // 播放网络视频
}
}async avPlayerDataSrcDemo
// 创建avPlayer实例对象
let avPlayer: media.AVPlayer = await