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 ae33129b7001defc3092ba04be06e3727e4b244c..c1c664a889a2228be23949ce9f50b9fcd8cfad66 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -36,6 +36,24 @@ getAudioManager(): AudioManager var audioManager = audio.getAudioManager(); ``` +## audio.getStreamManager9+ + +getStreamManager(): AudioStreamManager + +获取音频流管理器实例。 + +**系统能力:** SystemCapability.Multimedia.Audio.Core + +**返回值:** +| 类型 | 说明 | +| -------------------------------------------------| ------------------------------- | +| [AudioStreamManager](#audiostreammanager9) | 返回音频流管理器实例。 | + +**示例:** +``` +var audioStreamManager = audio.getStreamManager(); +``` + ## audio.createAudioRenderer8+ createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\): void @@ -44,7 +62,7 @@ createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\ { 枚举,焦点模型。 -**系统能力:** SystemCapability.Multimedia.Audio.InterruptMode +**系统能力:** SystemCapability.Multimedia.Audio.Core | 名称 | 默认值 | 描述 | | ---------------------------- | ------ | ---------- | @@ -331,13 +349,14 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { **系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core -| 名称 | 默认值 | 描述 | -| --------------------- | ------ | -------------------------- | -| SAMPLE_FORMAT_INVALID | -1 | 无效格式。 | -| SAMPLE_FORMAT_U8 | 0 | 无符号8位整数。 | -| SAMPLE_FORMAT_S16LE | 1 | 带符号的16位整数,小尾数。 | -| SAMPLE_FORMAT_S24LE | 2 | 带符号的24位整数,小尾数。 | -| SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。 | +| 名称 | 默认值 | 描述 | +| ---------------------------------- | ------ | -------------------------- | +| SAMPLE_FORMAT_INVALID | -1 | 无效格式。 | +| SAMPLE_FORMAT_U8 | 0 | 无符号8位整数。 | +| SAMPLE_FORMAT_S16LE | 1 | 带符号的16位整数,小尾数。 | +| SAMPLE_FORMAT_S24LE | 2 | 带符号的24位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| +| SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| +| SAMPLE_FORMAT_F32LE9+ | 4 | 带符号的32位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| ## AudioChannel8+ @@ -409,6 +428,17 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { | STREAM_USAGE_VOICE_COMMUNICATION | 2 | 语音通信。 | | STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 | +## FocusType9+ + +表示焦点类型的枚举。 + +**系统能力:**: SystemCapability.Multimedia.Audio.Core + +| 名称 | 默认值 | 描述 | +| ---------------------------------- | ------ | ------------------------------- | +| FOCUS_TYPE_RECORDING | 0 | 在录制场景使用,可打断其他音频。 | + + ## AudioState8+ 枚举,音频状态。 @@ -510,6 +540,17 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { | usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | | rendererFlags | number | 是 | 音频渲染器标志。 | +## AudioRendererFlag9+ + +枚举,决定输出策略的音频渲染器标志。 + +**系统能力**: SystemCapability.Multimedia.Audio.Core + +| 名称 | 默认值 | 说明 | +| ------------------| ------------ | ---------------------- | +| FLAG_NONE | 0 | 无特殊策略。 | +| FLAG_LOW_LATENCY | 1 | 使用低延迟进程的标志。 | + ## AudioRendererOptions8+ 音频渲染器选项信息。 @@ -576,7 +617,7 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { 描述设备连接状态变化和设备信息。 -**系统能力:**SystemCapability.Multimedia.Audio.Device +**系统能力:** SystemCapability.Multimedia.Audio.Device | 名称 | 类型 | 必填 | 说明 | | :---------------- | :------------------------------------------------ | :--- | :----------------- | @@ -616,6 +657,17 @@ audio.createAudioCapturer(audioCapturerOptions).then((data) => { | source | [SourceType](#sourcetype) | 是 | 音源类型。 | | capturerFlags | number | 是 | 音频采集器标志。 | +## AudioRendererDataInfo9+ + +音频渲染器的数据信息。 + +**系统能力**: SystemCapability.Multimedia.Audio.Renderer + +| 名称 | 类型 | 必填 | 说明 | +| ------- | ----------- | -------| ------------------------ | +| buffer | ArrayBuffer | 是 | 要填充的缓冲区。 | +| flags | number | 是 | 缓冲区扩展信息。 | + ## SourceType8+ 枚举,音源类型。 @@ -1839,16 +1891,534 @@ audioManager.getAudioScene().then((value) => { }); ``` +## AudioStreamManager9+ + +管理音频流。在使用AudioStreamManager的API前,需要使用[getStreamManager](#audiogetstreammanager9)获取AudioStreamManager实例。 + +### getCurrentAudioRendererInfoArray9+ + +getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void + +获取当前音频渲染器的信息。使用callback异步回调。 + +**系统能力**: SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | -------- | --------------------------- | +| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数,返回当前音频渲染器的信息。 | + +**示例:** +``` +audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => { + console.info('[GET_RENDERER_STATE_1_CALLBACK] **** Get Callback Called ****'); + if (err) { + console.log('getCurrentAudioRendererInfoArray :ERROR: '+err.message); + resultFlag = false; + } + else { + if (AudioRendererChangeInfoArray !=null) { + for (let i=0;i9+ + +getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray> + +获取当前音频渲染器的信息。使用Promise异步回调。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------------------------------------------------| --------------------------------------- | +| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Promise对象,返回当前音频渲染器信息。 | + +**示例:** +``` +await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) { + console.info('[GET_RENDERER_STATE_3_PROMISE] ######### Get Promise is called ##########'); + if (AudioRendererChangeInfoArray!=null) { + for (let i=0;i { + console.log('getCurrentAudioRendererInfoArray :ERROR: '+err.message); + resultFlag = false; +}); +``` + +### getCurrentAudioCapturerInfoArray9+ + +getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void + +获取当前音频采集器的信息。使用callback异步回调。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- | +| callback | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数,返回当前音频采集器的信息。 | + +**示例:** +``` +audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => { + console.info('[GET_CAPTURER_STATE_1_CALLBACK] **** Get Callback Called ****'); + if (err) { + console.log('getCurrentAudioCapturerInfoArray :ERROR: '+err.message); + resultFlag = false; + } + else { + if (AudioCapturerChangeInfoArray !=null) { + for (let i=0;i9+ + +getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray> + +获取当前音频采集器的信息。使用Promise异步回调。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**返回值:** + +| 类型 | 说明 | +| -----------------------------------------------------------------------------| ----------------------------------- | +| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Promise对象,返回当前音频渲染器信息。 | + +**示例:** +``` +await audioStreamManagerCB.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) { + console.info('AFCapturerChangeLog: [GET_CAP_STA_1_PR] **** Get Promise Called ****'); + if (AudioCapturerChangeInfoArray!=null) { + for (let i=0;i { + console.log('getCurrentAudioCapturerInfoArray :ERROR: '+err.message); + resultFlag = false; +}); +``` + +### on('audioRendererChange')9+ + +on(type: "audioRendererChange", callback: Callback<AudioRendererChangeInfoArray>): void + +监听音频渲染器更改事件。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| -------- | ---------- | --------- | ------------------------------------------------------------------------ | +| type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。 | +| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarry9)> | 是 | 回调函数。 | + +**示例:** +``` +audioStreamManagerCB.on('audioRendererChange', (AudioRendererChangeInfoArray) => { + for (let i=0;i9+ + +off(type: "audioRendererChange"); + +监听音频渲染器更改事件。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| -------- | ------- | ---- | ---------------- | +| type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 | + +**示例:** +``` +audioStreamManagerCB.off('audioRendererChange'); +console.info('[RENDERER-CHANGE-ON-001] ######### RendererChange Off is called #########'); +``` + +### on('audioCapturerChange')9+ + +on(type: "audioCapturerChange", callback: Callback<AudioCapturerChangeInfoArray>): void + +监听音频捕获器更改事件。 + +**系统能力:** SystemCapability.Multimedia.Audio.Capturer + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| -------- | ------- | --------- | ------------------------------------------------------------------- ---- | +| type | string | 是 | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。 | +| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarry9)> | 是 | 回调函数。 | + +**示例:** +``` +audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => { + for (let i=0;i9+ + +off(type: "audioCapturerChange"); + +监听音频捕获器更改事件。 + +**系统能力:** SystemCapability.Multimedia.Audio.Capturer + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| -------- | -------- | --- | ------------------------------------------------------------- | +| type | string |是 | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 | + +**示例:** +``` +audioStreamManager.off('audioCapturerChange'); +console.info('[GET_CAPTURER_STATE_2_PROMISE] ######### CapturerChange Off is called #########'); + +``` + +### isAudioRendererLowLatencySupported9+ + +isAudioRendererLowLatencySupported(streaminfo: AudioStreamInfo, callback: Callback<boolean>): void; + +检查系统是否支持音频渲染器中的低延迟配置。使用callback异步回调。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| ---------- | ----------------------- | -------- | --------------------------------------- | +| streaminfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 音频渲染器流信息。 | +| callback | Callback<boolean> | 是 | 返回系统是否支持音频渲染器中的低延迟配置。 | + +**示例:** + +``` +var audioManager = audio.getAudioManager(); + +var AudioStreamInfo = { + samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, + channels: audio.AudioChannel.CHANNEL_1, + sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, + encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var streamManagerCB = audioManager.getStreamManager(); +streamManagerCB.isAudioRendererLowLatencySupported(AudioStreamInfo, (result) => { + console.info('isAudioRendererLowLatencySupported success var = ' + result); +}); +``` + +### isAudioRendererLowLatencySupported9+ + +isAudioRendererLowLatencySupported(streaminfo: AudioStreamInfo): Promise<boolean> + +检查系统是否支持音频渲染器中的低延迟配置。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ------------------------------------ | ---- | ------------| +| streaminfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 数据流信息 | + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ---------------------------------------------------- | +| Promise<void> | Promise方式异步返回系统是否支持音频渲染器中的低延迟配置。 | + +**示例:** + +``` +var audioManager = audio.getAudioManager(); + +var AudioStreamInfo = { + samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, + channels: audio.AudioChannel.CHANNEL_1, + sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, + encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW +} + +var streamManager = await audioManager.getStreamManager(); +var result = streamManager.isAudioRendererLowLatencySupported(AudioStreamInfo); +console.info('isAudioRendererLowLatencySupported success var =' + result); +``` + +## AudioRendererChangeInfo9+ + +描述音频渲染器更改信息。 + +**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | +| streamId | number | 是 | 否 | 音频流唯一id。 | +| clientUid | number | 是 | 否 | 音频渲染器客户端应用程序的Uid。 | +| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 否 | 音频渲染器信息。 | +| rendererState | [AudioState](#audiostate) | 是 | 否 | 音频状态。 | + +## AudioRendererChangeInfoArray9+ + +AudioRenderChangeInfo数组,只读。 + +**系统能力:**: SystemCapability.Multimedia.Audio.Renderer + +**示例:** + +``` +import audio from '@ohos.multimedia.audio'; + +var audioStreamManager; +var audioStreamManagerCB; + +await audioManager.getStreamManager().then(async function (data) { + audioStreamManager = data; + console.info(Tag+'Get AudioStream Manager : Success '); +}).catch((err) => { + console.info(Tag+'Get AudioStream Manager : ERROR : '+err.message); +}); + +audioManager.getStreamManager((err, data) => { + if (err) { + console.error(Tag+'Get AudioStream Manager : ERROR : '+err.message); + } + else { + audioStreamManagerCB = data; + console.info(Tag+'Get AudioStream Manager : Success '); + } + }); + +audioStreamManagerCB.on('audioRendererChange', (AudioRendererChangeInfoArray) => { + for (let i=0;i9+ + +描述音频捕获器更改信息。 + +**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Capturer + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | +| streamId | number | 是 | 否 | 音频流唯一id。 | +| clientUid | number | 是 | 否 | 音频渲染器客户端应用程序的Uid。 | +| capturerInfo | [AudioCapturerInfo](#audiocaptureinfo8) | 是 | 否 | 音频渲染器信息。 | +| capturerState | [AudioState](#audiostate) | 是 | 否 | 音频状态。 | + +## AudioCapturerChangeInfoArray9+ + +AudioCapturerChangeInfo数组,只读。 + +**系统能力:** SystemCapability.Multimedia.Audio.Capturer + +**示例:** + +``` +import audio from '@ohos.multimedia.audio'; + +const audioManager = audio.getAudioManager(); +audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => { + for (let i=0;i9+ | number | 是 | 否 | 设备id。 | +| name9+ | string | 是 | 否 | 设备名称。 | +| address9+ | string | 是 | 否 | 设备地址。 | +| sampleRates9+ | Array<number> | 是 | 否 | 支持的采样率。 | +| channelCounts9+ | Array<number> | 是 | 否 | 支持的通道数。 | +| channelMasks9+ | Array<number> | 是 | 否 | 支持的通道掩码。 | ## AudioDeviceDescriptors @@ -1904,7 +2474,7 @@ getRendererInfo(callback: AsyncCallback): void 获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -1929,7 +2499,7 @@ getRendererInfo(): Promise 获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -1958,7 +2528,7 @@ getStreamInfo(callback: AsyncCallback): void 获取音频流信息,使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -1984,7 +2554,7 @@ getStreamInfo(): Promise 获取音频流信息,使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2012,7 +2582,7 @@ start(callback: AsyncCallback): void 启动音频渲染器。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2038,7 +2608,7 @@ start(): Promise 启动音频渲染器。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2062,7 +2632,7 @@ pause(callback: AsyncCallback\): void 暂停渲染。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2088,7 +2658,7 @@ pause(): Promise\ 暂停渲染。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2112,7 +2682,7 @@ drain(callback: AsyncCallback\): void 检查缓冲区是否已被耗尽。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2138,7 +2708,7 @@ drain(): Promise\ 检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2162,7 +2732,7 @@ stop(callback: AsyncCallback\): void 停止渲染。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2188,7 +2758,7 @@ stop(): Promise\ 停止渲染。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2212,7 +2782,7 @@ release(callback: AsyncCallback\): void 释放音频渲染器。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2238,7 +2808,7 @@ release(): Promise\ 释放渲染器。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2262,7 +2832,7 @@ write(buffer: ArrayBuffer, callback: AsyncCallback\): void 写入缓冲区。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2331,7 +2901,7 @@ write(buffer: ArrayBuffer): Promise\ 写入缓冲区。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2401,7 +2971,7 @@ getAudioTime(callback: AsyncCallback\): void 获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2423,7 +2993,7 @@ getAudioTime(): Promise\ 获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2447,7 +3017,7 @@ getBufferSize(callback: AsyncCallback\): void 获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2471,7 +3041,7 @@ getBufferSize(): Promise\ 获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2524,7 +3094,7 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\): void 设置音频渲染速率。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2551,7 +3121,7 @@ setRenderRate(rate: AudioRendererRate): Promise\ 设置音频渲染速率。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2581,7 +3151,7 @@ getRenderRate(callback: AsyncCallback\): void 获取当前渲染速率。使用callback方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2603,7 +3173,7 @@ getRenderRate(): Promise\ 获取当前渲染速率。使用Promise方式异步返回结果。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **返回值:** @@ -2622,7 +3192,7 @@ audioRenderer.getRenderRate().then((renderRate) => { ``` ### setInterruptMode9+ -setInterruptMode(interruptMode: InterruptMode): Promise<void> +setInterruptMode(mode: InterruptMode): Promise<void> 设置应用的焦点模型。使用Promise异步回调。 @@ -2630,9 +3200,9 @@ setInterruptMode(interruptMode: InterruptMode): Promise<void> **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | -| interruptMode | [InterruptMode](#InterruptMode) | 是 | 焦点模型。 | +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ---------------------------------- | ------ | ---------- | +| mode | [InterruptMode](#InterruptMode) | 是 | 焦点模型。 | **返回值:** @@ -2650,7 +3220,7 @@ audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE).then(() => { ``` ### setInterruptMode9+ -setInterruptMode(interruptMode: InterruptMode, callback: Callback\): void +setInterruptMode(mode: InterruptMode, callback: Callback\): void 设置应用的焦点模型。使用Callback回调返回执行结果。 @@ -2658,10 +3228,10 @@ setInterruptMode(interruptMode: InterruptMode, callback: Callback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | -|interruptMode | [InterruptMode](#InterruptMode) | 是 | 焦点模型。| -|callback | Callback\ | 是 |回调返回执行结果。| +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ----------------------------------- | ------ | -------------- | +|mode | [InterruptMode](#InterruptMode) | 是 | 焦点模型。| +|callback | Callback\ | 是 |回调返回执行结果。| **示例:** @@ -2677,7 +3247,7 @@ on(type: 'interrupt', callback: Callback\): void 监听音频中断事件。使用callback获取中断事件。 -**系统能力**: SystemCapability.Multimedia.Audio.Renderer +**系统能力:** SystemCapability.Multimedia.Audio.Renderer **参数:** @@ -2858,6 +3428,35 @@ audioRenderer.on('stateChange', (state) => { }); ``` +### on('dataRequest') 9+ + +on(type: "dataRequest", callback: Callback): void; + +订阅音频数据requeset事件回调。 + +**系统能力:** SystemCapability.Multimedia.Audio.Renderer + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| -------- | ------- | --------- | ------------------------------------------------------------------- | +| type | string | 是 | 事件类型。值**dataRequest**表示数据请求事件。 | +| callback | [AudioRendererDataInfo](#audiorendererdatainfo9) | 是 | 需要音频数据时调用回调。| + +**示例:** +``` +const path = '/data/storage/el2/ba se/haps/entry/cache/PinkPanther60-44100-1c.wav'; + let ss = fileio.createStreamSync(path, 'r'); + let discardHeader = new ArrayBuffer(44); + ss.readSync(discardHeader); + let rlen = 0; + audioRenderer.on('dataRequest', (audioRendererDataInfo) => { + var viewObject = new DataView(audioRendererDataInfo.buffer); + rlen += ss.readSync(viewObject.buffer); + console.info('AudioRenderLog: bytes read from file: ' + rlen); + }) +``` + ## AudioCapturer8+ 提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。 @@ -3002,7 +3601,7 @@ start(callback: AsyncCallback): void **系统能力:** SystemCapability.Multimedia.Audio.Capturer -**参数** +**参数:** | 参数名 | 类型 | 必填 | 说明 | | :------- | :------------------- | :--- | :----------------------------- | @@ -3192,7 +3791,7 @@ read(size: number, isBlockingRead: boolean, callback: AsyncCallback