HarmonyOS 鸿蒙Next中音乐类应用如何设置正确的音乐类型

HarmonyOS 鸿蒙Next中音乐类应用如何设置正确的音乐类型

概述

音乐类应用设置正确的音乐类型是指在应用开发中,音乐播放应用需要准确配置其音频流类型,以便系统能够识别并为其分配适当的音频资源和功耗策略。

设计原则

音乐类应用播放时设置正确应用类型,走系统低功耗方案。

典型案例

您的应用存在音乐类应用使用了错误的usage类型STREAM_USAGE_ALARM为闹钟,不符合审核标准。

import { audio } from '@kit.AudioKit';
let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
};
let audioRendererInfo: audio.AudioRendererInfo = {
  //usage值为错误的类型,应该设置成audio.StreamUsage.STREAM_USAGE_MUSIC
  usage: audio.StreamUsage.STREAM_USAGE_ALARM,
  rendererFlags: 0
};
let audioRendererOptions: audio.AudioRendererOptions = {
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo
};
audio.createAudioRenderer(audioRendererOptions, (err, data) => {
  if (err) {
    hilog.error(0x0000, 'Sample', `Invoke createAudioRenderer failed, code is ${err.code}, message is ${err.message}`);
    return;
  } else {
    hilog.info(0x0000, 'Sample', 'Invoke createAudioRenderer succeeded.');
    let audioRenderer = data;
  }
});

修改指引

StreamUsage播放音频流类型的枚举值,设置音乐播放的usage类型为audio.StreamUsage.STREAM_USAGE_MUSIC,值为1。详情见Audio Kit(音频服务)-ArkST API-@ohos.multimedia.audio (音频管理)-Enums。确保音乐类应用能使用系统低功耗方案,详情见音乐播放场景低功耗规则

低功耗音频播放是一种通过软硬芯协同设计实现的音频渲染方案,减少频繁处理音频数据的功耗,显著降低系统级功耗负载,详情见低功耗音频播放

音乐类应用在后台播放时无需设置播放状态,通过接入AVSession Kit(音视频播控服务),设置资源的时长、播放状态(暂停、播放)、播放位置、倍速即可,不需要应用实时更新播放进度。

应用上架前迭代版本测试可使用DevEco Testing应用上架预检功能在本地设备/虚拟机提供黑盒专业测试能力,提前发现上架基础体验类问题,提升上架审核效率。

应用上架提审前可使用云测试应用上架预检功能在云端提供远程黑盒专业测试,包含多品类,多设备,多OS的兼容测试能力,提前发现上架基础体验类问题,提升上架审核效率。

上架预检生成检测报告后,导入到AppAnalyzer工具进行诊断和分析,获得可能的故障原因并生成体检报告。


更多关于HarmonyOS 鸿蒙Next中音乐类应用如何设置正确的音乐类型的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS Next中,音乐类应用通过AudioVolumeGroupManagersetAudioScene方法设置音乐类型。开发者需在应用配置文件中声明ohos.permission.MANAGE_AUDIO_CONFIG权限。音频场景类型包括AUDIO_SCENE_DEFAULT(默认)、AUDIO_SCENE_MUSIC(音乐)、AUDIO_SCENE_RINGTONE(铃声)等。正确设置AUDIO_SCENE_MUSIC可使系统按音乐场景优化音频输出策略。

更多关于HarmonyOS 鸿蒙Next中音乐类应用如何设置正确的音乐类型的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,为音乐类应用设置正确的音频流类型至关重要,这直接关系到系统能否为其分配合适的音频资源和功耗策略,从而优化用户体验和设备续航。

核心解决方案是:在创建音频渲染器(AudioRenderer)时,必须将 AudioRendererInfo 中的 usage 属性设置为 audio.StreamUsage.STREAM_USAGE_MUSIC

根据您提供的典型案例,问题代码中将 usage 错误地设置为了 STREAM_USAGE_ALARM(闹钟类型)。这会导致系统无法将您的应用识别为音乐播放应用,从而无法启用针对音乐播放优化的低功耗音频方案。

正确的代码修改示例如下:

import { audio } from '@kit.AudioKit';

let audioRendererInfo: audio.AudioRendererInfo = {
  // 关键修正:将 usage 设置为音乐类型
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 值应为 1
  rendererFlags: 0
};

// ... 其余 streamInfo 和 options 配置保持不变
let audioRendererOptions: audio.AudioRendererOptions = {
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo // 使用修正后的 rendererInfo
};

audio.createAudioRenderer(audioRendererOptions, (err, data) => {
  // ... 创建回调处理
});

设置正确类型的重要性:

  1. 启用低功耗播放方案:系统会为 STREAM_USAGE_MUSIC 类型的音频流激活软硬芯协同的低功耗渲染路径,显著降低持续播放音乐时的系统功耗。
  2. 符合审核标准:使用正确的类型是应用上架审核的基本要求,错误的类型(如使用报警、通知类型)会导致审核不通过。
  3. 正确的系统行为:系统会根据流类型管理音频焦点、音量调节和后台策略。例如,音乐类型通常允许在后台持续播放,而其他类型可能受到限制。

最佳实践补充:

  • 后台播放管理:对于需要在后台播放的音乐应用,建议接入 AVSession Kit。通过AVSession设置媒体元数据(如歌曲名、歌手)和播放状态(播放/暂停),系统播控中心可以对其进行管理,应用无需频繁更新进度,这也有利于功耗优化。
  • 上架前检测:利用 DevEco Testing 的本地上架预检或 云测试 的远程预检功能,可以提前发现此类基础体验问题,提高上架效率。

总结,确保 audio.StreamUsage.STREAM_USAGE_MUSIC 是音乐播放应用唯一正确的选择,这是实现功能、功耗与合规性平衡的基础。

回到顶部