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..2019664c6337a0ec16e9c1b1e159e99c3ab84418 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+
枚举,音源类型。
@@ -651,7 +703,7 @@ setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&l
设置指定流的音量,使用callback方式异步返回结果。
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY,仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
**系统能力:** SystemCapability.Multimedia.Audio.Volume
@@ -681,7 +733,7 @@ setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>
设置指定流的音量,使用Promise方式异步返回结果。
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY,仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
**系统能力:** SystemCapability.Multimedia.Audio.Volume
@@ -877,7 +929,7 @@ mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void
设置指定音量流静音,使用callback方式异步返回结果。
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY,仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
**系统能力:** SystemCapability.Multimedia.Audio.Volume
@@ -907,7 +959,7 @@ mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>
设置指定音量流静音,使用Promise方式异步返回结果。
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY,仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
**系统能力:** SystemCapability.Multimedia.Audio.Volume
@@ -1566,6 +1618,8 @@ on(type: 'volumeChange', callback: Callback\): void
此接口为系统接口,三方应用不支持调用。
+目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1839,16 +1893,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 +2476,7 @@ getRendererInfo(callback: AsyncCallback): void
获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -1929,7 +2501,7 @@ getRendererInfo(): Promise
获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -1958,7 +2530,7 @@ getStreamInfo(callback: AsyncCallback): void
获取音频流信息,使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -1984,7 +2556,7 @@ getStreamInfo(): Promise
获取音频流信息,使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2012,7 +2584,7 @@ start(callback: AsyncCallback): void
启动音频渲染器。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2038,7 +2610,7 @@ start(): Promise
启动音频渲染器。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2062,7 +2634,7 @@ pause(callback: AsyncCallback\): void
暂停渲染。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2088,7 +2660,7 @@ pause(): Promise\
暂停渲染。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2112,7 +2684,7 @@ drain(callback: AsyncCallback\): void
检查缓冲区是否已被耗尽。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2138,7 +2710,7 @@ drain(): Promise\
检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2162,7 +2734,7 @@ stop(callback: AsyncCallback\): void
停止渲染。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2188,7 +2760,7 @@ stop(): Promise\
停止渲染。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2212,7 +2784,7 @@ release(callback: AsyncCallback\): void
释放音频渲染器。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2238,7 +2810,7 @@ release(): Promise\
释放渲染器。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2262,7 +2834,7 @@ write(buffer: ArrayBuffer, callback: AsyncCallback\): void
写入缓冲区。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2287,7 +2859,7 @@ var audioStreamInfo = {
var audioRendererInfo = {
content: audio.ContentType.CONTENT_TYPE_SPEECH,
- usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION
rendererFlags: 1
}
@@ -2331,7 +2903,7 @@ write(buffer: ArrayBuffer): Promise\
写入缓冲区。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2349,13 +2921,13 @@ import featureAbility from '@ohos.ability.featureAbility'
var audioStreamInfo = {
samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
channels:audio.AudioChannel.CHANNEL_2,
- sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
- encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
+ sampleFormat:audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+ encodingType:audio.AudioEncodingType.ENCODING_TYPE_RAW
}
var audioRendererInfo = {
content: audio.ContentType.CONTENT_TYPE_SPEECH,
- usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
rendererFlags: 1
}
@@ -2401,7 +2973,7 @@ getAudioTime(callback: AsyncCallback\): void
获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2423,7 +2995,7 @@ getAudioTime(): Promise\
获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2447,7 +3019,7 @@ getBufferSize(callback: AsyncCallback\): void
获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2471,7 +3043,7 @@ getBufferSize(): Promise\
获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2488,13 +3060,13 @@ import fileio from '@ohos.fileio';
var audioStreamInfo = {
samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
channels:audio.AudioChannel.CHANNEL_2,
- sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
- encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
+ sampleFormat:audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
+ encodingType:audio.AudioEncodingType.ENCODING_TYPE_RAW
}
var audioRendererInfo = {
content: audio.ContentType.CONTENT_TYPE_SPEECH,
- usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
rendererFlags: 1
}
@@ -2524,7 +3096,7 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\): void
设置音频渲染速率。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2551,7 +3123,7 @@ setRenderRate(rate: AudioRendererRate): Promise\
设置音频渲染速率。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2581,7 +3153,7 @@ getRenderRate(callback: AsyncCallback\): void
获取当前渲染速率。使用callback方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2603,7 +3175,7 @@ getRenderRate(): Promise\
获取当前渲染速率。使用Promise方式异步返回结果。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**返回值:**
@@ -2622,7 +3194,7 @@ audioRenderer.getRenderRate().then((renderRate) => {
```
### setInterruptMode9+
-setInterruptMode(interruptMode: InterruptMode): Promise<void>
+setInterruptMode(mode: InterruptMode): Promise<void>
设置应用的焦点模型。使用Promise异步回调。
@@ -2630,9 +3202,9 @@ setInterruptMode(interruptMode: InterruptMode): Promise<void>
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
-| interruptMode | [InterruptMode](#InterruptMode) | 是 | 焦点模型。 |
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ---------------------------------- | ------ | ---------- |
+| mode | [InterruptMode](#InterruptMode) | 是 | 焦点模型。 |
**返回值:**
@@ -2643,14 +3215,32 @@ setInterruptMode(interruptMode: InterruptMode): Promise<void>
**示例:**
```
-const audioManager = audio.getAudioManager();
-audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE).then(() => {
- console.log('Promise returned to indicate a successful volume setting.');
+var audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+var audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+}
+var audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
+}
+let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+let mode = 0;
+audioRenderer.setInterruptMode(mode).then(data=>{
+ console.log("setInterruptMode Success!");
+}).catch(err=>{
+ console.log("setInterruptMode Fail:" + err.message);
});
```
### setInterruptMode9+
-setInterruptMode(interruptMode: InterruptMode, callback: Callback\): void
+setInterruptMode(mode: InterruptMode, callback: Callback\): void
设置应用的焦点模型。使用Callback回调返回执行结果。
@@ -2658,17 +3248,36 @@ setInterruptMode(interruptMode: InterruptMode, callback: Callback\): void
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
-|interruptMode | [InterruptMode](#InterruptMode) | 是 | 焦点模型。|
-|callback | Callback\ | 是 |回调返回执行结果。|
+| 参数名 | 类型 | 必填 | 说明 |
+| ------- | ----------------------------------- | ------ | -------------- |
+|mode | [InterruptMode](#InterruptMode) | 是 | 焦点模型。|
+|callback | Callback\ | 是 |回调返回执行结果。|
**示例:**
```
-const audioManager = audio.getAudioManager();
-audioManager.setInterruptMode(audio.InterruptMode.SHARE_MODE,()=>{
- console.log('Callback returned to indicate a successful volume setting.');
+var audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+var audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage: audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags: 0
+}
+var audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
+}
+let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+let mode = 1;
+audioRenderer.setInterruptMode(mode,(err,data)=>{
+ if(err){
+ console.log("setInterruptMode Fail:" + err.message);
+ }
+ console.log("setInterruptMode Success!");
});
```
### on('interrupt')9+
@@ -2677,7 +3286,7 @@ on(type: 'interrupt', callback: Callback\): void
监听音频中断事件。使用callback获取中断事件。
-**系统能力**: SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
@@ -2858,6 +3467,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 +3640,7 @@ start(callback: AsyncCallback): void
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
-**参数**
+**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :----------------------------- |
@@ -3050,10 +3688,11 @@ var audioStreamInfo = {
var audioCapturerInfo = {
source: audio.SourceType.SOURCE_TYPE_MIC,
- capturerFlags = 1
+ capturerFlags: 1
}
var audioCapturer;
+var stateFlag;
audio.createAudioCapturer(audioCapturerOptions).then((data) => {
audioCapturer = data;
console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS');
@@ -3173,6 +3812,7 @@ release(): Promise
**示例:**
```
+var stateFlag;
audioCapturer.release().then(() => {
console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
@@ -3192,7 +3832,7 @@ read(size: number, isBlockingRead: boolean, callback: AsyncCallback