145 Star 1.4K Fork 1.7K

OpenHarmony/applications_app_samples

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

媒体管理合集

介绍

具体功能

  1. 网络流播放能力
  2. 音视频播控能力
  3. 音量调节能力
  4. DRM解密播放能力

效果预览

主页 音频 视频 重命名
drm播放列表 drm播放页

使用说明

  1. 启动应用,选择离线播放,点击音频或视频可以查看本地音视频资源。若本地没有音视频资源,可以用mediatool工具push视频到本地媒体库路径:
将资源复制进设备
hdc file send Audios(Videos) /data/Audios.mp3(Videos.mp4) 

通过mediatool把设备目录下的文件推入媒体库中
hdc shell mediatool send /data/Audios.mp3(Videos.mp4)
  1. 进入首页,可以通过输入网络地址或点击音频,视频进行播放音视频。
  2. 音视频播放后,对于播控按键显示,点击播放、暂停可以播放、暂停音视频,点击循环图标可以在单曲循环和列表循环进行切换。
  3. 点击下一曲、上一曲可以切换音视频,拖动seek可以跳到指定位置播放,点击详细信息可以查看当前音视频信息,视频点击倍速可以开启倍速播放。
  4. 音视频列表左滑可以开启重命名、删除图标,点击对应图标可以进行音视频的重命名和删除。
  5. 返回应用首页,选择drm在线播放,进入播放列表。
  6. 播放列表中都是drm加密片源,在列表中选择一条片源点击,进入播放页后底层检测到加密片源,会自动执行drm解密流程,进行在线播放。
  7. 在播放页,可以进行拖动进度条seek、暂停、倍速、循环、跳转第一帧、跳转最后一帧等操作。
  8. 返回播放列表,点击第四个可离线视频的钥匙按钮后播放视频,片源会走drm离线license播放(LicenseType会由Streaming变为offLine),使用与在线相同。

工程目录

entry/src/main/ets/
|---Application
|   |---MyAbilityStage.ts
|---common
|   |---constants
|   |   |---AVplayerConstants.ets               // AVplayer常量
|   |   |---DrmConstants.ets                    // Drm常量
|   |---BroadcastControl.ets                    // 窗口
|   |---DeleteDialog.ets                        // 删除弹窗
|   |---IsInformationDialog.ets                 // 信息弹窗
|   |---mainDialog.ets                          // 弹窗组件
|   |---MediaItem.ets                           // 音频每一项
|   |---RenameDialog.ets                        // 重命名
|   |---StreamingMedia.ets                      // 视频播放
|   |---TitleBar.ets                            // 首页标题组件
|   |---Toolkit.ets                             // 工具栏
|   |---ToolkitItem.ets                         // 工具栏每一项
|---MainAbility
|   |---MainAbility.ts
|---model
|   |---AVPleyer.ets                            // AVPlayer控制器
|   |---DrmController.ets                       // Drm控制器
|   |---GridData.ts                             // 数据
|   |---HttpUtil.ets                            // 网络请求方法
|   |---JsonListData.ets                        // 播放列表JSON类型
|   |---KVManagerUtil.ets                       // 持久化工具
|   |---Logger.ts                               // 日志工具
|   |---MediaUtils.ts                           // 音频方法
|   |---myMedia.ts                              // 我的
|   |---Prompt.ts                               // 弹窗
|   |---TimeTools.ts                            // 时间工具
|   |---TypeConversion.ets                      // 类型转换工具
|---pages
|   |---online
|   |   |---OnlineList.ets                      // Drm播放列表页
|   |   |---OnlinePlayer.ets                    // Drm播放页
|   |---HomePage.ets                            // 切换页
|   |---index.ets                               // 首页
|   |---phoneMain.ets                           // 主页面
|---phoneView
|   |---online
|   |   |---OnlineListItemView.ets              // Drm播放列表项
|   |   |---OnlineListView.ets                  // Drm播放列表
|   |   |---OnlinePlayerView.ets                // Drm播放窗口
|   |---BroadcastControl.ets                    // 窗口
|   |---GridDataItem.ets                        // 每项数据
|   |---LoadingDialog.ets                       // 加载
|   |---TitleBar.ets                            // 标题
|   |---Toolkit.ets                             // 工具

具体实现

相关权限

1.读取公共目录的图片或视频文件:ohos.permission.READ_IMAGEVIDEO

2.修改公共目录的图片或视频文件:ohos.permission.WRITE_IMAGEVIDEO

3.读取公共目录的音频文件:ohos.permission.READ_AUDIO

4.修改公共目录的音频文件:ohos.permission.WRITE_AUDIO

5.使用Internet网络:ohos.permission.INTERNET

依赖

不涉及

约束与限制

1.本示例仅支持标准系统上运行,支持设备:RK3568。

2.本示例已适配API version 12版本SDK,版本号:5.0.0.22。

3.本示例需要使用DevEco Studio NEXT Developer Beta1 (Build Version: 5.0.1.100 构建 2024年3月25日)及以上版本才可编译运行。

4.本示例涉及使用系统接口:getXComponentSurfaceId(),需要手动替换Full SDK才能编译通过,具体操作可参考替换指南

5.本示例DRM播放需要IP白名单才可以运行,设备需要含DCM证书,否则无法播放DRM片源。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/SystemFeature/FileManagement/MediaCollections/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openharmony/applications_app_samples.git
git@gitee.com:openharmony/applications_app_samples.git
openharmony
applications_app_samples
applications_app_samples
master

搜索帮助