鸿蒙应用开发:音频播放

news2024/12/23 12:27:23

鸿蒙系统提供了多样化的API,来帮助开发者完成音频播放的开发,不同的API适用于不同音频数据格式、音频资源来源、音频使用场景,甚至是不同开发语言。因此,选择合适的音频播放API,有助于降低开发工作量,实现更佳的音频播放效果。

本节介绍通过Media Kit实现音频播放。

  • AVPlayer:用于音频播放的ArkTS/JS API,集成了流媒体和本地资源解析、媒体资源解封装、音频解码和音频输出功能。可用于直接播放mp3、m4a等格式的音频文件,不支持直接播放PCM格式文件。

  • SoundPool:低时延的短音播放ArkTS/JS API,适用于播放急促简短的音效,如相机快门音效、按键音效、游戏射击音效等。

使用AVPlayer可以实现端到端播放原始媒体资源,播放的全流程包含:创建AVPlayer,设置播放资源,设置播放参数(音量/倍速/焦点模式),播放控制(播放/暂停/跳转/停止),重置,销毁资源。

在进行应用开发的过程中,开发者可以通过AVPlayer的state属性主动获取当前状态或使用on(‘stateChange’)方法监听状态变化。如果应用在音频播放器处于错误状态时执行操作,系统可能会抛出异常或生成其他未定义的行为。

状态的详细说明请参考AVPlayerState。当播放处于prepared / playing / paused / completed状态时,播放引擎处于工作状态,这需要占用系统较多的运行内存。当客户端暂时不使用播放器时,调用reset()或release()回收内存资源,做好资源利用。

 AudioPlayer.ets

首先创建实例createAVPlayer(),此时AVPlayer进入idle状态࿰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2137345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】--- 深度学习中的注意力机制

深度学习中的注意力机制 在深度学习领域,注意力机制(Attention Mechanism)已经成为近年来最受瞩目的研究热点之一。它不仅提升了现有模型的性能,更启发了全新的网络结构,如Transformer模型。注意力机制被广泛应用于自…

SMA2:代码实现详解——Image Encoder篇(Hiera章)

SMA2:代码实现详解——Image Encoder篇(Hiera) 写在前面 大家在SMA2:代码实现详解——Image Encoder篇(FpnNeck)下的留言我已收到,感谢大家的支持,后面如果遇到比较难以讲清的部分可能会使用视频的形式。…

jsp+sevlet+mysql图书管理系统

jspsevletmysql图书管理系统 一、系统介绍二、功能展示1.图书查询(学生)2.借阅信息(学生)3.借阅历史(学生)4.借阅历史(管理员)5.读者管理(管理员)6.图书分类(管理员)7.图书借阅信息(管理员)8.图书归还信息(管理员) 四、其它1.其他系统实现 一、系统介绍 系统主要功能&#xff…

《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.14容器版副本集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、部署背景 由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统&…

机器学习和深度学习的常见概念总结(多原创图)

目录 使用说明一、未分类损失函数(Loss Function)1. **损失函数的作用**2. **常见的损失函数**2.1. **均方误差(MSE, Mean Squared Error)**2.2. **均方根误差(RMSE, Root Mean Squared Error)**2.3. **平均…

【云原生安全篇】一文掌握Harbor集成Trivy应用实践

【云原生安全篇】一文掌握Harbor集成Trivy应用实践 目录 1 概念 1.1 什么是 Harbor 和 Trivy? 1.1.1 Harbor 1.1.2 Trivy 1.2 Harbor 与 Trivy 的关系 Trivy 在 Harbor 中的作用: 1.3 镜像扫描工作流程 2 实战案例:在Harbor 配置 Trivy …

SafaRi:弱监督引用表达式分割的自适应序列转换器

引用表达式分割(reference Expression Segmentation, RES)旨在提供文本所引用的图像(即引用表达式)中目标对象的分割掩码。 目前存在的挑战 1)现有的方法需要大规模的掩码注释。 2)此外,这种方法不能很好地推广到未见/零射击场景 改进 1)提出了一个弱…

探索自动化的魔法:Python中的pyautogui库

文章目录 探索自动化的魔法:Python中的 pyautogui 库背景:为什么选择pyautogui?pyautogui是什么?如何安装pyautogui?五个简单的库函数使用方法场景应用常见Bug及解决方案总结 探索自动化的魔法:Python中的 …

VirtualBox桥接网卡消失,安装Docker后导致桥接网卡服务消失问题解决记录

问题记录:VirtualBox虚拟机的桥接网卡消失 记录时间:2024.9.14 系统:win10 问题已解决。 原因: 猜测是由于安装Docker,也会使用我们的网卡进行虚拟化,导致网卡与virtualbox的桥接服务丢失。 解决方案…

基于python+django+vue的鲜花商城系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的线…

三维点云处理(C++)学习记录——PDAL

一、OSGeo4W简概 OSGeo4W是一个基于Windows系统(版本7-11)的开源地理软件二进制包发布平台。OSGeo4W包括开源GIS桌面应用程序(QGIS、GRASS GIS)、地理空间库(PROJ、GDAL/OGR、GEOS、SpatiaLite、SAGA GIS)、…

org.flowable.bpmn.exceptions.XMLException: 元素类型 必须由匹配的结束标记

flowable在流程部署时经常汇报这个错误: org.flowable.bpmn.exceptions.XMLException: 元素类型... 必须由匹配的结束标记 经检查发现是数据库存的中午乱码导致xml结构异常了 解决办法如下: 在catalina.bat文件中找到如下地方,加入 -Dfile.…

Python爬取某猫投诉数据(含signature参数分析与算法还原)

文章目录 1. 写在前面2. 接口分析3. 爬虫实现 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

电商数据采集分析全流程分享||电商数据API接口

电商数据监测,能为品牌发展提供参考依据,已经成为了业内共识。依托智能系统,将电商数据转换为有价值的营销情报,只需三步: 数据采集 可采集30多个电商平台数据,采集字段高达40多个,包含标题、价…

网络穿透:TCP 打洞、UDP 打洞与 UPnP

在现代网络中,很多设备都处于 NAT(网络地址转换)或防火墙后面,这使得直接访问这些设备变得困难。在这种情况下,网络穿透技术就显得非常重要。本文将介绍三种常用的网络穿透技术:TCP 打洞、UDP 打洞和 UPnP。…

数据库运维实操优质文章文档分享(含Oracle、MySQL等) | 2024年8月刊

本文为大家整理了墨天轮数据社区2024年8月发布的优质技术文章/文档,主题涵盖Oracle、MySQL、PostgreSQL等主流数据库系统以及国产数据库的技术实操,从基础的安装配置到复杂的故障排查,再到性能优化的实用技巧及常用脚本等,分享给大…

【Python电商项目汇报总结】**采集10万+淘宝商品详情数据注意事项总结汇报**

大家好,今天我想和大家聊聊我们在采集10万淘宝商品详情数据时需要注意的一些关键问题。这不仅仅是一个技术活,更是一场细心与合规的较量。下面,我就用咱们都听得懂的话,一一给大家说道说道。 **一、明确目标,有的放矢…

vue前端实现下载导入模板文件

1.需要导出的文件放置public文件夹中 2.在.vue页面中添加下载代码 <a href"./exportTemplate.xlsx" download"导入数据模板.xlsx" target"_blank" style"color: #2967e9;">导入数据模板.xlsx</a><!-- 如使用element框…

linux使用命令行编译qt.cpp

步骤&#xff1a; mkdir qttestcd qttestvim hello.cpp #include <QApplication> #include <QDialog> #include <QLabel> int main(int argc,char* argv[]) {QApplication a(argc,argv);QLabel label("aaa");label.resize(100,100);label.show()…

在conda虚拟环境中安装cv2(试错多次总结)

首先保证你创建好了虚拟环境&#xff0c;并在anaconda命令窗口激活虚拟环境 依次输入下列命令&#xff1a; pip install opencv-python3.4.1.15 pip install opencv-contrib-python3.4.1.15 pip install dlib19.6.1 然后测试cv2是否可以使用&#xff0c;输入python 运行pyth…