diff --git a/zh-cn/application-dev/media/audio-playback-stream-management.md b/zh-cn/application-dev/media/audio-playback-stream-management.md index 548c4b0b2c8640585631eb162ac97a9c82b8bf58..f9e1707c8b4277a33d6d03a0389e4dac05cd453c 100644 --- a/zh-cn/application-dev/media/audio-playback-stream-management.md +++ b/zh-cn/application-dev/media/audio-playback-stream-management.md @@ -116,3 +116,8 @@ }); } ``` + +# 音频场景音效查询 + +对于播放音频类的应用,开发者需要关注该应用的音频流使用什么音效模式并做出相应的操作,比如音乐App播放时,应选择音乐场景下的模式。参考[使用AudioStreamManager开发音效查询功能](../reference/apis/js-apis-audio.md#getaudioeffectinfoarray10) + diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index bc0a4aabc42388e23a29b9180b9df7c51485ca53..0841847524d14138ded8bab7a525eb0f447dc389 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -550,6 +550,16 @@ async function createTonePlayerBefore(){ | STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 | | STREAM_USAGE_ACCESSIBILITY10+ | 8 | 无障碍。 | | STREAM_USAGE_SYSTEM10+ | 9 | 系统音(如屏幕锁定或按键音)。
此接口为系统接口。 | +## AudioEffectMode + +枚举,音效模式。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +| 名称 | 值 | 说明 | +| ------------------------------------------| ------ | ---------- | +| EFFECT_NONE | 0 | 直通音效。 | +| EFFECT_DEFAULT | 1 | 默认音效。 | ## InterruptRequestType9+ @@ -3375,6 +3385,92 @@ audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => { }); ``` +### getAudioEffectInfoArray10+ + +getAudioEffectInfoArray(content: ContentType, usage: StreamUsage, callback: AsyncCallback<AudioEffectInfoArray>): void + +获取当前音效模式的信息。使用callback异步回调。 + +**系统能力**: SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | -------- | --------------------------- | +| content | [ContentType](#contenttype) | 是 | 音频内容类型。 | +| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | +| callback | AsyncCallback<[AudioEffectInfoArray](#audioeffectinfoarray10)> | 是 | 回调函数,返回当前音效模式的信息。| + +**示例:** + +```js +audioStreamManager.getAudioEffectInfoArray(audio.ContentType.CONTENT_TYPE_MUSIC, audio.StreamUsage.STREAM_USAGE_MEDIA, async (err, AudioEffectInfoArray) => { + console.info('getAudioEffectInfoArray **** Get Callback Called ****'); + if (err) { + console.error(`getAudioEffectInfoArray :ERROR: ${err}`); + return; + } else { + if (AudioEffectInfoArray == null) { + console.error(`getAudioEffectInfoArray is null ptr.`); + return; + } + console.info(`The contentType of ${CONTENT_TYPE_MUSIC} and the streamUsage of ${STREAM_USAGE_MEDIA} 's effect mode are: `); + for (let i = 0; i < AudioEffectInfoArray.length; i++) { + for (const key in audio.AudioEffectMode) { + if (audio.AudioEffectMode[key] === AudioEffectInfoArray[i]) { + console.info(`${key}, `); + } + } + } + } +}); +``` + +### getAudioEffectInfoArray10+ + +getAudioEffectInfoArray(content: ContentType, usage: StreamUsage): Promise<AudioEffectInfoArray> + +获取当前音效模式的信息。使用Promise异步回调。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | -------- | --------------------------- | +| content | [ContentType](#contenttype) | 是 | 音频内容类型。 | +| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | + +**返回值:** + +| 类型 | 说明 | +| --------------------------------------------------------------------------| --------------------------------------- | +| Promise<[AudioEffectInfoArray](#audioeffectinfoarray10)> | Promise对象,返回当前音效模式的信息。 | + +**示例:** + +```js +async function getAudioEffectInfoArray(){ + await audioStreamManager.getAudioEffectInfoArray().then( function (AudioEffectInfoArray) { + console.info(`getAudioEffectInfoArray ######### Get Promise is called ##########`); + if (AudioEffectInfoArray == null) { + console.error(`getAudioEffectInfoArray is null ptr.`); + return; + } + console.info(`The contentType of ${CONTENT_TYPE_MUSIC} and the streamUsage of ${STREAM_USAGE_MEDIA} 's effect mode are: `); + for (let i = 0; i < AudioEffectInfoArray.length; i++) { + for (const key in audio.AudioEffectMode) { + if (audio.AudioEffectMode[key] === AudioEffectInfoArray[i]) { + console.info(`${key}, `); + } + } + } + }).catch((err) => { + console.error(`getAudioEffectInfoArray :ERROR: ${err}`); + }); +} +``` + ## AudioRoutingManager9+ 音频路由管理。在使用AudioRoutingManager的接口前,需要使用[getRoutingManager](#getroutingmanager9)获取AudioRoutingManager实例。 @@ -4169,6 +4265,10 @@ audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => }); ``` +## AudioEffectInfoArray10+ + +待查询ContentType和StreamUsage组合场景下的音效模式数组类型,[AudioEffectMode](#audioeffectmode)数组,只读。 + ## AudioDeviceDescriptors 设备属性数组类型,为[AudioDeviceDescriptor](#audiodevicedescriptor)的数组,只读。