南京网站制作步骤手机网站创建站点成功
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:17
当前位置: 首页 > news >正文
南京网站制作步骤,手机网站创建站点成功,免费crm,新冠最新消息音频打断策略 多音频并发#xff0c;即多个音频流同时播放。此场景下#xff0c;如果系统不加管控#xff0c;会造成多个音频流混音播放#xff0c;容易让用户感到嘈杂#xff0c;造成不好的用户体验。为了解决这个问题#xff0c;系统预设了音频打断策略#xff0c;对…音频打断策略 多音频并发即多个音频流同时播放。此场景下如果系统不加管控会造成多个音频流混音播放容易让用户感到嘈杂造成不好的用户体验。为了解决这个问题系统预设了音频打断策略对多音频播放的并发进行管控只有持有音频焦点的音频流才可以正常播放避免多个音频流无序并发播放的现象出现。 当应用开始播放音频时系统首先为相应的音频流申请音频焦点获得焦点的音频流可以播放若焦点申请被拒绝则不能播放。在音频流播放的过程中若被其他音频流打断则会失去音频焦点。当音频流失去音频焦点时只能暂停播放。在应用播放音频的过程中这些动作均由系统自行完成无需应用主动触发。但为了维持应用和系统的状态一致性保证良好的用户体验推荐应用[监听音频打断事件]并在收到音频打断事件[InterruptEvent]时做出相应处理。 为满足应用对多音频并发策略的不同需求音频打断策略预设了两种焦点模式针对同一应用创建的多个音频流应用可通过设置[焦点模式]选择由应用自主管控或由系统统一管控。 音频打断策略决定了应该对音频流采取何种操作如暂停播放、继续播放、降低音量播放、恢复音量播放等这些操作可能由系统或应用来执行。音频打断策略预置了两种[打断类型]用于区分音频打断事件InterruptEvent的执行者。 焦点模式 音频打断策略预设了两种焦点模式[InterruptMode] 共享焦点模式SHARE_MODE由同一应用创建的多个音频流共享一个音频焦点。这些音频流之间的并发规则由应用自主决定音频打断策略不会介入。当其他应用创建的音频流与该应用的音频流并发播放时才会触发音频打断策略的管控。独立焦点模式INDEPENDENT_MODE应用创建的每一个音频流均会独立拥有一个音频焦点当多个音频流并发播放时会触发音频打断策略的管控。 应用可以按需选择合适的焦点模式在创建音频流时系统默认采用共享焦点模式应用可主动设置所需的模式。 设置焦点模式的方法 若[使用AVPlayer开发音频播放功能]则可以通过修改AVPlayer的[audioInterruptMode]属性进行设置。若[使用AudioRenderer开发音频播放功能]则可以调用AudioRenderer的[setInterruptMode]函数进行设置。若[使用OHAudio开发音频播放功能(C/C)]则可以调用[OH_AudioStreamBuilder_SetRendererInterruptMode]函数进行设置。 打断类型 音频打断策略包括两种焦点模式决定了应该对各个音频流采取何种操作如暂停播放、继续播放、降低音量播放、恢复音量播放等。而针对这些操作的执行过程根据执行者的不同可以分为两种打断类型[InterruptForceType] 强制打断类型INTERRUPT_FORCE由系统进行操作强制打断音频播放。共享打断类型INTERRUPT_SHARE由应用进行操作可以选择打断或忽略。 对于音频打断策略的执行系统默认采用强制打断类型INTERRUPT_FORCE应用无法更改。但对于一些策略如继续播放等系统无法强制执行所以这两种打断类型均可能出现。应用可根据音频打断事件InterruptEvent的成员变量forceType的值获取该事件采用的打断类型。 在应用播放音频的过程中系统自动为音频流执行申请焦点、持有焦点、释放焦点等动作当发生音频打断事件时系统强制对音频流执行暂停、停止、降低音量、恢复音量等操作并向应用发送音频打断事件InterruptEvent回调。由于系统会强制改变音频流状态为了维持应用和系统的状态一致性保证良好的用户体验推荐应用[监听音频打断事件]并在收到音频打断事件InterruptEvent时做出相应处理。 对于一些系统无法强制执行的操作例如音频流继续播放的场景会向应用发送包含了共享打断类型的音频打断事件由应用自行执行相应操作此时应用可以选择执行或忽略系统不会干涉。 监听音频打断事件 在应用播放音频时推荐应用监听音频打断事件当音频打断事件发生时系统会根据预设策略对音频流做出相应的操作并针对状态发生改变的音频流向所属的应用发送音频打断事件。 应用收到音频打断事件后需根据其内容提示做出相应的处理避免出现应用状态与预期效果不一致的问题。 监听音频打断事件的方法 若[使用AVPlayer开发音频播放功能]则可以调用AVPlayer的[on(‘audioInterrupt’)]函数进行监听当收到音频打断事件InterruptEvent时应用需根据其内容做出相应的调整。若[使用AudioRenderer开发音频播放功能]则可以调用AudioRenderer的[on(‘audioInterrupt’)]函数进行监听当收到音频打断事件InterruptEvent时应用需根据其内容做出相应的调整。若[使用OHAudio开发音频播放功能(C/C)]则可以调用[OH_AudioStreamBuilder_SetRendererCallback]接口注册监听焦点回调事件当收到音频打断事件OH_AudioRenderer_OnInterruptEvent时应用需根据其内容做出相应的调整。 为了带给用户更好的体验针对不同的音频打断事件内容应用需要做出相应的处理操作。此处以使用AudioRenderer开发音频播放功能为例展示推荐应用采取的处理方法提供伪代码供开发者参考若使用AVPlayer开发音频播放功能或者使用OHAudio接口开发音频播放器功能处理方法类似具体的代码实现开发者可结合实际情况编写处理方法也可自行调整。 import { audio } from kit.AudioKit; // 导入audio模块 import { BusinessError } from kit.BasicServicesKit; // 导入BusinessErrorlet isPlay: boolean; // 是否正在播放实际开发中对应与音频播放状态相关的模块 let isDucked: boolean; //是否降低音量实际开发中对应与音频音量相关的模块 let started: boolean; // 标识符记录“开始播放start”操作是否成功async function onAudioInterrupt(): Promisevoid {// 此处以使用AudioRenderer开发音频播放功能举例变量audioRenderer即为播放时创建的AudioRenderer实例。audioRenderer.on(audioInterrupt, async(interruptEvent: audio.InterruptEvent) {// 在发生音频打断事件时audioRenderer收到interruptEvent回调此处根据其内容做相应处理// 1. 可选读取interruptEvent.forceType的类型判断系统是否已强制执行相应操作。// 注默认焦点策略下INTERRUPT_HINT_RESUME为INTERRUPT_SHARE类型其余hintType均为INTERRUPT_FORCE类型。因此对forceType可不做判断。// 2. 必选读取interruptEvent.hintType的类型做出相应的处理。if (interruptEvent.forceType audio.InterruptForceType.INTERRUPT_FORCE) {// 强制打断类型INTERRUPT_FORCE音频相关处理已由系统执行应用需更新自身状态做相应调整switch (interruptEvent.hintType) {case audio.InterruptHint.INTERRUPT_HINT_PAUSE:// 此分支表示系统已将音频流暂停临时失去焦点为保持状态一致应用需切换至音频暂停状态// 临时失去焦点待其他音频流释放音频焦点后本音频流会收到resume对应的音频打断事件到时可自行继续播放isPlay false; // 此句为简化处理代表应用切换至音频暂停状态的若干操作break;case audio.InterruptHint.INTERRUPT_HINT_STOP:// 此分支表示系统已将音频流停止永久失去焦点为保持状态一致应用需切换至音频暂停状态// 永久失去焦点后续不会再收到任何音频打断事件若想恢复播放需要用户主动触发。isPlay false; // 此句为简化处理代表应用切换至音频暂停状态的若干操作break;case audio.InterruptHint.INTERRUPT_HINT_DUCK:// 此分支表示系统已将音频音量降低默认降到正常音量的20%为保持状态一致应用需切换至降低音量播放状态// 若应用不接受降低音量播放可在此处选择其他处理方式如主动暂停等isDucked true; // 此句为简化处理代表应用切换至降低音量播放状态的若干操作break;case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:// 此分支表示系统已将音频音量恢复正常为保持状态一致应用需切换至正常音量播放状态isDucked false; // 此句为简化处理代表应用切换至正常音量播放状态的若干操作break;default:break;}} else if (interruptEvent.forceType audio.InterruptForceType.INTERRUPT_SHARE) {// 共享打断类型INTERRUPT_SHARE应用可自主选择执行相关操作或忽略音频打断事件switch (interruptEvent.hintType) {case audio.InterruptHint.INTERRUPT_HINT_RESUME:// 此分支表示临时失去焦点后被暂停的音频流此时可以继续播放建议应用继续播放切换至音频播放状态// 若应用此时不想继续播放可以忽略此音频打断事件不进行处理即可// 继续播放此处主动执行start()以标识符变量started记录start()的执行结果await audioRenderer.start().then(() {started true; // start()执行成功}).catch((err: BusinessError) {started false; // start()执行失败});// 若start()执行成功则切换至音频播放状态if (started) {isPlay true; // 此句为简化处理代表应用切换至音频播放状态的若干操作} else {// 音频继续播放执行失败}break;default:break;}}}); }典型场景 以下列举一些典型的焦点适配场景。 先播应用类型推荐流类型后播应用类型推荐流类型推荐体验适配方案视频STREAM_USAGE_MOVIE闹铃STREAM_USAGE_ALARM闹铃响起后视频暂停播放闹钟结束后视频继续播放。注册焦点事件监听接收到INTERRUPT_HINT_PAUSE事件时直接暂停视频播放并更新UI界面。当闹铃结束后视频应用接收到INTERRUPT_HINT_RESUME事件重新启动播放。音乐STREAM_USAGE_MUSIC电话铃声STREAM_USAGE_RINGTONE电话响铃后音乐暂停播放不接通或者接通再挂断后音乐恢复播放。注册焦点事件监听接收到INTERRUPT_HINT_PAUSE事件时直接暂停音乐播放并更新UI界面。当电话结束后视频应用接收到INTERRUPT_HINT_RESUME事件重新启动播放。音乐STREAM_USAGE_MUSIC音乐STREAM_USAGE_MUSIC后播音乐正常播放先播音乐应用停止播放UI变成停止播放状态。先播应用注册焦点事件监听接收到INTERRUPT_HINT_STOP事件时停止音乐播放并更新UI界面。 最后呢 很多开发朋友不知道需要学习那些鸿蒙技术鸿蒙开发岗位需要掌握那些核心技术点为此鸿蒙的开发学习必须要系统性的进行。 而网上有关鸿蒙的开发资料非常的少假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料少走很多弯路节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等鸿蒙Harmony NEXT技术知识点 如果你是一名Android、Java、前端等等开发人员想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。 针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说我们直接看详细鸿蒙OpenHarmony 手册共计1236页与鸿蒙OpenHarmony 开发入门视频帮助大家在技术的道路上更进一步。 《鸿蒙 (OpenHarmony)开发学习视频》《鸿蒙生态应用开发V2.0白皮书》《鸿蒙 (OpenHarmony)开发基础到实战手册》OpenHarmony北向、南向开发环境搭建《鸿蒙开发基础》《鸿蒙开发进阶》《鸿蒙开发实战》 总结 鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程从而开设鸿蒙课程企业纷纷跟进启动了鸿蒙研发。 并且鸿蒙是完全具备无与伦比的机遇和潜力的预计到年底将有 5,000 款的应用完成原生鸿蒙开发未来将会支持 50 万款的应用。那么这么多的应用需要开发也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长学习鸿蒙势在必行 自↓↓↓拿
- 上一篇: 南京网站优化建站网站代码怎么写
- 下一篇: 南京网站制作搭建wordpress不自动更新
相关文章
-
南京网站优化建站网站代码怎么写
南京网站优化建站网站代码怎么写
- 技术栈
- 2026年03月21日
-
南京网站网站建设有没有帮忙做问卷调查的网站
南京网站网站建设有没有帮忙做问卷调查的网站
- 技术栈
- 2026年03月21日
-
南京网站设计网站潍坊娜娜网站制作
南京网站设计网站潍坊娜娜网站制作
- 技术栈
- 2026年03月21日
-
南京网站制作搭建wordpress不自动更新
南京网站制作搭建wordpress不自动更新
- 技术栈
- 2026年03月21日
-
南京网站制作电话深圳专业网站设计制作
南京网站制作电话深圳专业网站设计制作
- 技术栈
- 2026年03月21日
-
南京网站制作电话自己建设的手机网站做百度地图定位
南京网站制作电话自己建设的手机网站做百度地图定位
- 技术栈
- 2026年03月21日
