# AVPlayerUrl **Repository Path**: tao_software/avplayer-url ## Basic Information - **Project Name**: AVPlayerUrl - **Description**: AVPlayer 播放网络视频 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-14 - **Last Updated**: 2025-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于AVPlayer播放网络视频实践 ### 简介 本示例主要展示了HarmonyOS中如何基于AVPlayer系统播放器实现网络视频播放,知道开发者实现以下开发场景 - 网络视频URL设置 - 基本播控 - 网络视频缓冲条 - 网络视频边缓冲边播放 ### 效果预览 | 预设URL视频列表 | 手动输入URL | URL视频播放 | 带缓冲条网络视频播放 | |--------------------------------------|--------------------------------------|--------------------------------------|--------------------------------------| | ![image](screenshots/device/pv1.png) | ![image](screenshots/device/pv2.png) | ![image](screenshots/device/pv3.png) | ![image](screenshots/device/pv4.png) | ### 工程目录 ``` ├──entry // entry模块 │ ├──src/main/ets │ │ ├──common │ │ │ ├──constants │ │ │ │ └──Constants.ets // 常量类 │ │ ├──entryability │ │ │ └──EntryAbility.ets // 程序入口 │ │ ├──entrybackupability │ │ │ └──EntryBackupAbility.ets │ │ ├──pages │ │ │ ├──BufferBarPlayer.ets // 带缓冲条播放页 │ │ │ ├──FullScreenPlayer.ets // 基本播放页 │ │ │ ├──Index.ets // 主页,播放列表 │ │ │ └──UrlPlayer.ets // url资源播放页 │ │ └──view │ │ └──VideoItem.ets // 首页视频列表项 │ └──src/main/resources // 资源目录 │ └──PlayerService // 通用播放模块 ├──src/main/ets │ ├──common │ │ └──CommonConstants.ets // 公用常量 │ ├──component │ │ ├──VideoPlayer.ets // 公用视频播放组件 │ │ └──VideoToolBar.ets // 公用视频工具栏 │ ├──controller │ │ ├──AvPlayerController.ets // avplayer公共控制类 │ │ └──AvSessionController.ets // session公共控制类 │ ├──model │ │ └──VideoData.ets // 视频数据类 │ └──utils │ ├──BackgroundTaskManager.ets // 后台任务相关工具 │ ├──ImageUtil.ets // 图片工具 │ ├──Logger.ets // 日志工具 │ └──TimeUtils.ets // 时间工具 └──src/main/resources // 通用模块资源 ``` ### 具体实现 - 网络视频URL设置 - 通过给AVPlayer配置url属性值,实现AVPlayer播放URL视频资源 - 基本播控 - 通过AVPlayer的play()、pause()、stop()实现视频基本播控 - 网络视频缓冲条 - 通过绑定AVPlayer的bufferingUpdate事件处理函数,将缓冲预估播放时间和当前播放时间相加,并绑定到Slider的value属性,实现缓冲条 - 网络视频边缓冲边播放 - 通过AVPlayer的setPlaybackStrategy()方法配置边缓冲边播放的相关参数配置 ### 相关权限 本示例中部分图片使用了网络资源,因此本示例需要申请系统网络权限,配置如下 src/main/module.json5 ``` { "module": { //... "requestPermissions": [ { "name": "ohos.permission.INTERNET" } ] } } ``` ### 约束与限制 1.本示例仅支持标准系统上运行,支持设备:华为手机。 2.HarmonyOS系统:HarmonyOS 5.1.0 Release及以上。 3.DevEco Studio版本:DevEco Studio 5.1.0 Release及以上。 4.HarmonyOS SDK版本:HarmonyOS 5.1.0 Release SDK及以上。