介绍
具体功能
- 网络流播放能力
- 音视频播控能力
- 音量调节能力
效果预览
使用说明
- 启动应用,点击音频或视频可以查看本地音视频资源。若本地没有音视频资源,可以push视频到本地媒体库路径,视频路径(storage/media/100/local/files/Videos) 音频路径(storage/media/100/local/files/Audios),需要先hdc进入storage/media/100/local/files路径下查看是否有Videos/Audios文件夹,没有则需要mkdir Videos/Audios创建文件夹后push音视频资源。
- 进入首页,可以通过输入网络地址或点击音频,视频进行播放音视频。
- 音视频播放后,对于播控按键显示,点击播放、暂停可以播放、暂停音视频。
- 音视频列表左滑可以开启重命名、删除图标,点击对应图标可以进行音视频的重命名和删除。
工程目录
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 // 工具
具体实现
-
获取音频模块
- 使用媒体库接口进行音视频的扫描,获取音视频详细信息,重命名和删除操作,使用PixelMap方法读取或写入图像数据以及获取图像信息。
- 源码链接:myMedia.ts,IsInformationDialog.ets,DeleteDialog.ets,RenameDialog.ets
- 接口参考:@ohos.multimedia.mediaLibrary,@ohos.multimedia.image,@ohos.prompt
-
音频,视频操作模块
- 使用媒体服务进行音视频播放,暂停,seek等操作,其中AudioPlayer方法播放音频,VideoPlayer方法播放视频。
- 源码链接:MediaUtils.ts,StreamingMedia.ets
- 接口参考:@ohos.multimedia.media,@ohos.multimedia.audio
-
设备适配模块
- 使用屏幕管理接口获取设备宽度进行适配。
- 源码链接:MainAbility.ts,RenameDialog.ets
- 接口参考:@ohos.display
相关权限
1.读取公共媒体文件权限:ohos.permission.READ_MEDIA
2.读写公共媒体文件权限:ohos.permission.WRITE_MEDIA
依赖
不涉及
约束与限制
1.本示例仅支持标准系统上运行,支持设备:RK3568。
2.本示例已适配API version 10版本SDK,本示例涉及使用系统接口:getXComponentSurfaceId(),需要手动替换Full SDK才能编译通过,具体操作可参考替换指南。
3.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400 构建 2023年4月7日)及以上版本才可编译运行。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/BasicFeature/FileManagement/MediaCollections/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
码牛课堂也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些在职人员、0基础小白、应届生/计算机专业、鸿蒙爱好者等人群,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线。大家可以进行参考学习:https://qr21.cn/FV7h05
①全方位,更合理的学习路径:
路线图包括ArkTS基础语法、鸿蒙应用APP开发、鸿蒙能力集APP开发、次开发多端部署开发、物联网开发等九大模块,六大实战项目贯穿始终,由浅入深,层层递进,深入理解鸿蒙开发原理!②多层次,更多的鸿蒙原生应用:
路线图将包含完全基于鸿蒙内核开发的应用,比如一次开发多端部署、自由流转、元服务、端云一体化等,多方位的学习内容让学生能够高效掌握鸿蒙开发,少走弯路,真正理解并应用鸿蒙的核心技术和理念。③实战化,更贴合企业需求的技术点:
学习路线图中的每一个技术点都能够紧贴企业需求,经过多次真实实践,每一个知识点、每一个项目,都是码牛课堂鸿蒙研发团队精心打磨和深度解析的成果,注重对学生的细致教学,每一步都确保学生能够真正理解和掌握。
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:https://qr21.cn/FV7h05
如何快速入门:
- 基本概念
- 构建第一个ArkTS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……
鸿蒙开发面试真题(含参考答案):https://qr21.cn/FV7h05
大厂鸿蒙面试题::https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向