音频管理

2024-01-23 15:45 更新

音频管理提供管理音频的一些基础能力,包括对音频音量、音频设备的管理,以及对音频数据的采集和渲染等。

该模块提供以下音频相关的常用功能:

说明

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import audio from '@ohos.multimedia.audio';

常量

名称

类型

可读

可写

说明

DEFAULT_VOLUME_GROUP_ID9+

number

默认音量组id。

系统能力: SystemCapability.Multimedia.Audio.Volume

DEFAULT_INTERRUPT_GROUP_ID9+

number

默认音频中断组id。

系统能力: SystemCapability.Multimedia.Audio.Interrupt

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
  3. const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;

audio.getAudioManager

getAudioManager(): AudioManager

获取音频管理器。

系统能力: SystemCapability.Multimedia.Audio.Core

返回值:

类型

说明

AudioManager

音频管理类。

示例:

  1. let audioManager = audio.getAudioManager();

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback<AudioRenderer>): void

获取音频渲染器。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

options

AudioRendererOptions

配置渲染器。

callback

AsyncCallback<AudioRenderer>

音频渲染器对象。

示例:

  1. import featureAbility from '@ohos.ability.featureAbility';
  2. import fs from '@ohos.file.fs';
  3. import audio from '@ohos.multimedia.audio';
  4. let audioStreamInfo = {
  5. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  6. channels: audio.AudioChannel.CHANNEL_1,
  7. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  8. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
  9. }
  10. let audioRendererInfo = {
  11. content: audio.ContentType.CONTENT_TYPE_SPEECH,
  12. usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
  13. rendererFlags: 0
  14. }
  15. let audioRendererOptions = {
  16. streamInfo: audioStreamInfo,
  17. rendererInfo: audioRendererInfo
  18. }
  19. audio.createAudioRenderer(audioRendererOptions,(err, data) => {
  20. if (err) {
  21. console.error(`AudioRenderer Created: Error: ${err}`);
  22. } else {
  23. console.info('AudioRenderer Created: Success: SUCCESS');
  24. let audioRenderer = data;
  25. }
  26. });

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer>

获取音频渲染器。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

options

AudioRendererOptions

配置渲染器。

返回值:

类型

说明

Promise<AudioRenderer>

音频渲染器对象。

示例:

  1. import featureAbility from '@ohos.ability.featureAbility';
  2. import fs from '@ohos.file.fs';
  3. import audio from '@ohos.multimedia.audio';
  4. let audioStreamInfo = {
  5. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  6. channels: audio.AudioChannel.CHANNEL_1,
  7. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  8. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
  9. }
  10. let audioRendererInfo = {
  11. content: audio.ContentType.CONTENT_TYPE_SPEECH,
  12. usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
  13. rendererFlags: 0
  14. }
  15. let audioRendererOptions = {
  16. streamInfo: audioStreamInfo,
  17. rendererInfo: audioRendererInfo
  18. }
  19. let audioRenderer;
  20. audio.createAudioRenderer(audioRendererOptions).then((data) => {
  21. audioRenderer = data;
  22. console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
  23. }).catch((err) => {
  24. console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
  25. });

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer>): void

获取音频采集器。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

需要权限: ohos.permission.MICROPHONE

参数:

参数名

类型

必填

说明

options

AudioCapturerOptions

配置音频采集器。

callback

AsyncCallback<AudioCapturer>

音频采集器对象。

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. let audioStreamInfo = {
  3. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  4. channels: audio.AudioChannel.CHANNEL_2,
  5. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  6. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
  7. }
  8. let audioCapturerInfo = {
  9. source: audio.SourceType.SOURCE_TYPE_MIC,
  10. capturerFlags: 0
  11. }
  12. let audioCapturerOptions = {
  13. streamInfo: audioStreamInfo,
  14. capturerInfo: audioCapturerInfo
  15. }
  16. audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
  17. if (err) {
  18. console.error(`AudioCapturer Created : Error: ${err}`);
  19. } else {
  20. console.info('AudioCapturer Created : Success : SUCCESS');
  21. let audioCapturer = data;
  22. }
  23. });

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer>

获取音频采集器。使用promise 方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

需要权限: ohos.permission.MICROPHONE

参数:

参数名

类型

必填

说明

options

AudioCapturerOptions

配置音频采集器。

返回值:

类型

说明

Promise<AudioCapturer>

音频采集器对象

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. let audioStreamInfo = {
  3. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  4. channels: audio.AudioChannel.CHANNEL_2,
  5. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  6. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
  7. }
  8. let audioCapturerInfo = {
  9. source: audio.SourceType.SOURCE_TYPE_MIC,
  10. capturerFlags: 0
  11. }
  12. let audioCapturerOptions = {
  13. streamInfo: audioStreamInfo,
  14. capturerInfo: audioCapturerInfo
  15. }
  16. let audioCapturer;
  17. audio.createAudioCapturer(audioCapturerOptions).then((data) => {
  18. audioCapturer = data;
  19. console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
  20. }).catch((err) => {
  21. console.error(`AudioCapturer Created : ERROR : ${err}`);
  22. });

AudioVolumeType

枚举,音频流类型。

系统能力: SystemCapability.Multimedia.Audio.Volume

名称

说明

VOICE_CALL8+

0

语音电话。

RINGTONE

2

铃声。

MEDIA

3

媒体。

VOICE_ASSISTANT8+

9

语音助手。

InterruptMode9+

枚举,焦点模型。

系统能力: SystemCapability.Multimedia.Audio.Interrupt

名称

说明

SHARE_MODE

0

共享焦点模式。

INDEPENDENT_MODE

1

独立焦点模式。

DeviceFlag

枚举,可获取的设备种类。

系统能力: SystemCapability.Multimedia.Audio.Device

名称

说明

OUTPUT_DEVICES_FLAG

1

输出设备。

INPUT_DEVICES_FLAG

2

输入设备。

ALL_DEVICES_FLAG

3

所有设备。

DeviceRole

枚举,设备角色。

系统能力: SystemCapability.Multimedia.Audio.Device

名称

说明

INPUT_DEVICE

1

输入设备角色。

OUTPUT_DEVICE

2

输出设备角色。

DeviceType

枚举,设备类型。

系统能力: SystemCapability.Multimedia.Audio.Device

名称

说明

INVALID

0

无效设备。

EARPIECE

1

听筒。

SPEAKER

2

扬声器。

WIRED_HEADSET

3

有线耳机,带麦克风。

WIRED_HEADPHONES

4

有线耳机,无麦克风。

BLUETOOTH_SCO

7

蓝牙设备SCO(Synchronous Connection Oriented)连接。

BLUETOOTH_A2DP

8

蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。

MIC

15

麦克风。

USB_HEADSET

22

USB耳机,带麦克风。

DEFAULT9+

1000

默认设备类型。

CommunicationDeviceType9+

枚举,用于通信的可用设备类型。

系统能力: SystemCapability.Multimedia.Audio.Communication

名称

说明

SPEAKER

2

扬声器。

AudioRingMode

枚举,铃声模式。

系统能力: SystemCapability.Multimedia.Audio.Communication

名称

说明

RINGER_MODE_SILENT

0

静音模式。

RINGER_MODE_VIBRATE

1

震动模式。

RINGER_MODE_NORMAL

2

响铃模式。

AudioSampleFormat8+

枚举,音频采样格式。

系统能力: 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_F32LE9+

4

带符号的32位浮点数,小尾数。

由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。

AudioErrors9+

枚举,音频错误码。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

说明

ERROR_INVALID_PARAM

6800101

无效入参。

ERROR_NO_MEMORY

6800102

分配内存失败。

ERROR_ILLEGAL_STATE

6800103

状态不支持。

ERROR_UNSUPPORTED

6800104

参数选项不支持。

ERROR_TIMEOUT

6800105

处理超时。

ERROR_STREAM_LIMIT

6800201

音频流数量达到限制。

ERROR_SYSTEM

6800301

系统处理异常。

AudioChannel8+

枚举, 音频声道。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

说明

CHANNEL_1

0x1 << 0

第一声道。

CHANNEL_2

0x1 << 1

第二声道。

AudioSamplingRate8+

枚举,音频采样率,具体设备支持的采样率规格会存在差异。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

说明

SAMPLE_RATE_8000

8000

采样率为8000。

SAMPLE_RATE_11025

11025

采样率为11025。

SAMPLE_RATE_12000

12000

采样率为12000。

SAMPLE_RATE_16000

16000

采样率为16000。

SAMPLE_RATE_22050

22050

采样率为22050。

SAMPLE_RATE_24000

24000

采样率为24000。

SAMPLE_RATE_32000

32000

采样率为32000。

SAMPLE_RATE_44100

44100

采样率为44100。

SAMPLE_RATE_48000

48000

采样率为48000。

SAMPLE_RATE_64000

64000

采样率为64000。

SAMPLE_RATE_96000

96000

采样率为96000。

AudioEncodingType8+

枚举,音频编码类型。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

说明

ENCODING_TYPE_INVALID

-1

无效。

ENCODING_TYPE_RAW

0

PCM编码。

ContentType

枚举,音频内容类型。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

说明

CONTENT_TYPE_UNKNOWN

0

未知类型。

CONTENT_TYPE_SPEECH

1

语音。

CONTENT_TYPE_MUSIC

2

音乐。

CONTENT_TYPE_MOVIE

3

电影。

CONTENT_TYPE_SONIFICATION

4

通知音。

CONTENT_TYPE_RINGTONE8+

5

铃声。

StreamUsage

枚举,音频流使用类型。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

说明

STREAM_USAGE_UNKNOWN

0

未知类型。

STREAM_USAGE_MEDIA

1

音频。

STREAM_USAGE_VOICE_COMMUNICATION

2

语音通信。

STREAM_USAGE_VOICE_ASSISTANT9+

3

语音播报。

STREAM_USAGE_NOTIFICATION_RINGTONE

6

通知铃声。

AudioState8+

枚举,音频状态。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

说明

STATE_INVALID

-1

无效状态。

STATE_NEW

0

创建新实例状态。

STATE_PREPARED

1

准备状态。

STATE_RUNNING

2

可运行状态。

STATE_STOPPED

3

停止状态。

STATE_RELEASED

4

释放状态。

STATE_PAUSED

5

暂停状态。

AudioRendererRate8+

枚举,音频渲染速度。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

说明

RENDER_RATE_NORMAL

0

正常速度。

RENDER_RATE_DOUBLE

1

2倍速。

RENDER_RATE_HALF

2

0.5倍数。

InterruptType

枚举,中断类型。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

说明

INTERRUPT_TYPE_BEGIN

1

音频播放中断事件开始。

INTERRUPT_TYPE_END

2

音频播放中断事件结束。

InterruptForceType9+

枚举,强制打断类型。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

说明

INTERRUPT_FORCE

0

由系统进行操作,强制打断音频播放。

INTERRUPT_SHARE

1

由应用进行操作,可以选择打断或忽略。

InterruptHint

枚举,中断提示。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

说明

INTERRUPT_HINT_NONE8+

0

无提示。

INTERRUPT_HINT_RESUME

1

提示音频恢复。

INTERRUPT_HINT_PAUSE

2

提示音频暂停。

INTERRUPT_HINT_STOP

3

提示音频停止。

INTERRUPT_HINT_DUCK

4

提示音频躲避。(躲避:音量减弱,而不会停止)

INTERRUPT_HINT_UNDUCK8+

5

提示音量恢复。

AudioStreamInfo8+

音频流信息。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

类型

必填

说明

samplingRate

AudioSamplingRate

音频文件的采样率。

channels

AudioChannel

音频文件的通道数。

sampleFormat

AudioSampleFormat

音频采样格式。

encodingType

AudioEncodingType

音频编码格式。

AudioRendererInfo8+

音频渲染器信息。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

类型

必填

说明

content

ContentType

媒体类型。

usage

StreamUsage

音频流使用类型。

rendererFlags

number

音频渲染器标志。

AudioRendererOptions8+

音频渲染器选项信息。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

类型

必填

说明

streamInfo

AudioStreamInfo

表示音频流信息。

rendererInfo

AudioRendererInfo

表示渲染器信息。

InterruptEvent9+

播放中断时,应用接收的中断事件。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

类型

必填

说明

eventType

InterruptType

中断事件类型,开始或是结束。

forceType

InterruptForceType

操作是由系统执行或是由应用程序执行。

hintType

InterruptHint

中断提示。

VolumeEvent9+

音量改变时,应用接收的事件。

系统能力: SystemCapability.Multimedia.Audio.Volume

名称

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

volume

number

音量等级,可设置范围通过getMinVolume和getMaxVolume获取。

updateUi

boolean

在UI中显示音量变化。

MicStateChangeEvent9+

麦克风状态变化时,应用接收的事件。

系统能力: SystemCapability.Multimedia.Audio.Device

名称

类型

必填

说明

mute

boolean

回调返回系统麦克风静音状态,true为静音,false为非静音。

DeviceChangeAction

描述设备连接状态变化和设备信息。

系统能力: SystemCapability.Multimedia.Audio.Device

名称

类型

必填

说明

type

DeviceChangeType

设备连接状态变化。

deviceDescriptors

AudioDeviceDescriptors

设备信息。

DeviceChangeType

枚举,设备连接状态变化。

系统能力: SystemCapability.Multimedia.Audio.Device

名称

说明

CONNECT

0

设备连接。

DISCONNECT

1

断开设备连接。

AudioCapturerOptions8+

音频采集器选项信息。

系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Capturer

名称

类型

必填

说明

streamInfo

AudioStreamInfo

表示音频流信息。

capturerInfo

AudioCapturerInfo

表示采集器信息。

AudioCapturerInfo8+

描述音频采集器信息。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

类型

必填

说明

source

SourceType

音源类型。

capturerFlags

number

音频采集器标志。

SourceType8+

枚举,音源类型。

系统能力: SystemCapability.Multimedia.Audio.Core

名称

说明

SOURCE_TYPE_INVALID

-1

无效的音频源。

SOURCE_TYPE_MIC

0

Mic音频源。

SOURCE_TYPE_VOICE_RECOGNITION9+

1

语音识别源。

SOURCE_TYPE_VOICE_COMMUNICATION

7

语音通话场景的音频源。

AudioScene8+

枚举,音频场景。

系统能力: SystemCapability.Multimedia.Audio.Communication

名称

说明

AUDIO_SCENE_DEFAULT

0

默认音频场景。

AUDIO_SCENE_VOICE_CHAT

3

语音聊天模式。

AudioManager

管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过getAudioManager创建实例。

setAudioParameter

setAudioParameter(key: string, value: string, callback: AsyncCallback<void>): void

音频参数设置,使用callback方式异步返回结果。

本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。

需要权限: ohos.permission.MODIFY_AUDIO_SETTINGS

系统能力: SystemCapability.Multimedia.Audio.Core

参数:

参数名

类型

必填

说明

key

string

被设置的音频参数的键。

value

string

被设置的音频参数的值。

callback

AsyncCallback<void>

回调返回设置成功或失败。

示例:

  1. audioManager.setAudioParameter('key_example', 'value_example', (err) => {
  2. if (err) {
  3. console.error(`Failed to set the audio parameter. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate a successful setting of the audio parameter.');
  7. });

setAudioParameter

setAudioParameter(key: string, value: string): Promise<void>

音频参数设置,使用Promise方式异步返回结果。

本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。

需要权限: ohos.permission.MODIFY_AUDIO_SETTINGS

系统能力: SystemCapability.Multimedia.Audio.Core

参数:

参数名

类型

必填

说明

key

string

被设置的音频参数的键。

value

string

被设置的音频参数的值。

返回值:

类型

说明

Promise<void>

Promise回调返回设置成功或失败。

示例:

  1. audioManager.setAudioParameter('key_example', 'value_example').then(() => {
  2. console.info('Promise returned to indicate a successful setting of the audio parameter.');
  3. });

getAudioParameter

getAudioParameter(key: string, callback: AsyncCallback<string>): void

获取指定音频参数值,使用callback方式异步返回结果。

本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。

系统能力: SystemCapability.Multimedia.Audio.Core

参数:

参数名

类型

必填

说明

key

string

待获取的音频参数的键。

callback

AsyncCallback<string>

回调返回获取的音频参数的值。

示例:

  1. audioManager.getAudioParameter('key_example', (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the value of the audio parameter. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`);
  7. });

getAudioParameter

getAudioParameter(key: string): Promise<string>

获取指定音频参数值,使用Promise方式异步返回结果。

本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。

系统能力: SystemCapability.Multimedia.Audio.Core

参数:

参数名

类型

必填

说明

key

string

待获取的音频参数的键。

返回值:

类型

说明

Promise<string>

Promise回调返回获取的音频参数的值。

示例:

  1. audioManager.getAudioParameter('key_example').then((value) => {
  2. console.info(`Promise returned to indicate that the value of the audio parameter is obtained ${value}.`);
  3. });

getAudioScene8+

getAudioScene(callback: AsyncCallback<AudioScene>): void

获取音频场景模式,使用callback方式返回异步结果。

系统能力: SystemCapability.Multimedia.Audio.Communication

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioScene>

用于返回音频场景模式的回调。

示例:

  1. audioManager.getAudioScene((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the audio scene mode.​ ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`);
  7. });

getAudioScene8+

getAudioScene(): Promise<AudioScene>

获取音频场景模式,使用Promise方式返回异步结果。

系统能力: SystemCapability.Multimedia.Audio.Communication

返回值:

类型

说明

Promise<AudioScene>

用于返回音频场景模式的回调。

示例:

  1. audioManager.getAudioScene().then((value) => {
  2. console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`);
  3. }).catch ((err) => {
  4. console.error(`Failed to obtain the audio scene mode ${err}`);
  5. });

getVolumeManager9+

getVolumeManager(): AudioVolumeManager

获取音频音量管理器。

系统能力: SystemCapability.Multimedia.Audio.Volume

示例:

  1. let audioVolumeManager = audioManager.getVolumeManager();

getStreamManager9+

getStreamManager(): AudioStreamManager

获取音频流管理器。

系统能力: SystemCapability.Multimedia.Audio.Core

示例:

  1. let audioStreamManager = audioManager.getStreamManager();

getRoutingManager9+

getRoutingManager(): AudioRoutingManager

获取音频路由设备管理器。

系统能力: SystemCapability.Multimedia.Audio.Device

示例:

  1. let audioRoutingManager = audioManager.getRoutingManager();

setVolume(deprecated)

setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void

设置指定流的音量,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

volume

number

音量等级,可设置范围通过getMinVolume和getMaxVolume获取。

callback

AsyncCallback<void>

回调表示成功还是失败。

示例:

  1. audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
  2. if (err) {
  3. console.error(`Failed to set the volume. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate a successful volume setting.');
  7. });

setVolume(deprecated)

setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>

设置指定流的音量,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

volume

number

音量等级,可设置范围通过getMinVolume和getMaxVolume获取。

返回值:

类型

说明

Promise<void>

Promise回调表示成功还是失败。

示例:

  1. audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
  2. console.info('Promise returned to indicate a successful volume setting.');
  3. });

getVolume(deprecated)

getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

获取指定流的音量,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getVolume替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<number>

回调返回音量大小。

示例:

  1. audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the volume. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the volume is obtained.');
  7. });

getVolume(deprecated)

getVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的音量,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getVolume替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<number>

Promise回调返回音量大小。

示例:

  1. audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
  2. console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
  3. });

getMinVolume(deprecated)

getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

获取指定流的最小音量,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getMinVolume替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<number>

回调返回最小音量。

示例:

  1. audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the minimum volume. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
  7. });

getMinVolume(deprecated)

getMinVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的最小音量,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getMinVolume替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<number>

Promise回调返回最小音量。

示例:

  1. audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
  2. console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
  3. });

getMaxVolume(deprecated)

getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

获取指定流的最大音量,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getMaxVolume替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<number>

回调返回最大音量大小。

示例:

  1. audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the maximum volume. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
  7. });

getMaxVolume(deprecated)

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的最大音量,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getMaxVolume替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<number>

Promise回调返回最大音量大小。

示例:

  1. audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
  2. console.info('Promised returned to indicate that the maximum volume is obtained.');
  3. });

mute(deprecated)

mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void

设置指定音量流静音,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

mute

boolean

静音状态,true为静音,false为非静音。

callback

AsyncCallback<void>

回调表示成功还是失败。

示例:

  1. audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
  2. if (err) {
  3. console.error(`Failed to mute the stream. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the stream is muted.');
  7. });

mute(deprecated)

mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>

设置指定音量流静音,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

mute

boolean

静音状态,true为静音,false为非静音。

返回值:

类型

说明

Promise<void>

Promise回调表示成功还是失败。

示例:

  1. audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
  2. console.info('Promise returned to indicate that the stream is muted.');
  3. });

isMute(deprecated)

isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void

获取指定音量流是否被静音,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的isMute替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<boolean>

回调返回流静音状态,true为静音,false为非静音。

示例:

  1. audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the mute status. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
  7. });

isMute(deprecated)

isMute(volumeType: AudioVolumeType): Promise<boolean>

获取指定音量流是否被静音,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的isMute替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<boolean>

Promise回调返回流静音状态,true为静音,false为非静音。

示例:

  1. audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
  2. console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
  3. });

isActive(deprecated)

isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void

获取指定音量流是否为活跃状态,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的isActive替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<boolean>

回调返回流的活跃状态,true为活跃,false为不活跃。

示例:

  1. audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the active status of the stream. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
  7. });

isActive(deprecated)

isActive(volumeType: AudioVolumeType): Promise<boolean>

获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的isActive替代。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<boolean>

Promise回调返回流的活跃状态,true为活跃,false为不活跃。

示例:

  1. audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
  2. console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
  3. });

setRingerMode(deprecated)

setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void

设置铃声模式,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

仅在静音和非静音状态切换时需要该权限。

系统能力: SystemCapability.Multimedia.Audio.Communication

参数:

参数名

类型

必填

说明

mode

AudioRingMode

音频铃声模式。

callback

AsyncCallback<void>

回调返回设置成功或失败。

示例:

  1. audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
  2. if (err) {
  3. console.error(`Failed to set the ringer mode.​ ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate a successful setting of the ringer mode.');
  7. });

setRingerMode(deprecated)

setRingerMode(mode: AudioRingMode): Promise<void>

设置铃声模式,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

仅在静音和非静音状态切换时需要该权限。

系统能力: SystemCapability.Multimedia.Audio.Communication

参数:

参数名

类型

必填

说明

mode

AudioRingMode

音频铃声模式。

返回值:

类型

说明

Promise<void>

Promise回调返回设置成功或失败。

示例:

  1. audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
  2. console.info('Promise returned to indicate a successful setting of the ringer mode.');
  3. });

getRingerMode(deprecated)

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

获取铃声模式,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getRingerMode替代。

系统能力: SystemCapability.Multimedia.Audio.Communication

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioRingMode>

回调返回系统的铃声模式。

示例:

  1. audioManager.getRingerMode((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the ringer mode.​ ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
  7. });

getRingerMode(deprecated)

getRingerMode(): Promise<AudioRingMode>

获取铃声模式,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getRingerMode替代。

系统能力: SystemCapability.Multimedia.Audio.Communication

返回值:

类型

说明

Promise<AudioRingMode>

Promise回调返回系统的铃声模式。

示例:

  1. audioManager.getRingerMode().then((value) => {
  2. console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
  3. });

getDevices(deprecated)

getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void

获取音频设备列表,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的getDevices替代。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

deviceFlag

DeviceFlag

设备类型的flag。

callback

AsyncCallback<AudioDeviceDescriptors>

回调,返回设备列表。

示例:

  1. audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the device list. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the device list is obtained.');
  7. });

getDevices(deprecated)

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

获取音频设备列表,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的getDevices替代。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

deviceFlag

DeviceFlag

设备类型的flag。

返回值:

类型

说明

Promise<AudioDeviceDescriptors>

Promise回调返回设备列表。

示例:

  1. audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
  2. console.info('Promise returned to indicate that the device list is obtained.');
  3. });

setDeviceActive(deprecated)

setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback<void>): void

设置设备激活状态,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的setCommunicationDevice替代。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

deviceType

ActiveDeviceType

活跃音频设备类型。

active

boolean

设备激活状态。

callback

AsyncCallback<void>

回调返回设置成功或失败。

示例:

  1. audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
  2. if (err) {
  3. console.error(`Failed to set the active status of the device. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the device is set to the active status.');
  7. });

setDeviceActive(deprecated)

setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise<void>

设置设备激活状态,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的setCommunicationDevice替代。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

deviceType

ActiveDeviceType

活跃音频设备类型。

active

boolean

设备激活状态。

返回值:

类型

说明

Promise<void>

Promise回调返回设置成功或失败。

示例:

  1. audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
  2. console.info('Promise returned to indicate that the device is set to the active status.');
  3. });

isDeviceActive(deprecated)

isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback<boolean>): void

获取指定设备的激活状态,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的isCommunicationDeviceActive替代。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

deviceType

ActiveDeviceType

活跃音频设备类型。

callback

AsyncCallback<boolean>

回调返回设备的激活状态。

示例:

  1. audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the active status of the device. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the active status of the device is obtained.');
  7. });

isDeviceActive(deprecated)

isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>

获取指定设备的激活状态,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的isCommunicationDeviceActive替代。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

deviceType

ActiveDeviceType

活跃音频设备类型。

返回值:

Type

Description

Promise<boolean>

Promise回调返回设备的激活状态。

示例:

  1. audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
  2. console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
  3. });

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void

设置麦克风静音状态,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的setMicrophoneMute替代。

需要权限: ohos.permission.MICROPHONE

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

mute

boolean

待设置的静音状态,true为静音,false为非静音。

callback

AsyncCallback<void>

回调返回设置成功或失败。

示例:

  1. audioManager.setMicrophoneMute(true, (err) => {
  2. if (err) {
  3. console.error(`Failed to mute the microphone. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the microphone is muted.');
  7. });

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean): Promise<void>

设置麦克风静音状态,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的setMicrophoneMute替代。

需要权限: ohos.permission.MICROPHONE

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

mute

boolean

待设置的静音状态,true为静音,false为非静音。

返回值:

类型

说明

Promise<void>

Promise回调返回设置成功或失败。

示例:

  1. audioManager.setMicrophoneMute(true).then(() => {
  2. console.info('Promise returned to indicate that the microphone is muted.');
  3. });

isMicrophoneMute(deprecated)

isMicrophoneMute(callback: AsyncCallback<boolean>): void

获取麦克风静音状态,使用callback方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的isMicrophoneMute替代。

需要权限: ohos.permission.MICROPHONE

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

callback

AsyncCallback<boolean>

回调返回系统麦克风静音状态,true为静音,false为非静音。

示例:

  1. audioManager.isMicrophoneMute((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the mute status of the microphone. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
  7. });

isMicrophoneMute(deprecated)

isMicrophoneMute(): Promise<boolean>

获取麦克风静音状态,使用Promise方式异步返回结果。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的isMicrophoneMute替代。

需要权限: ohos.permission.MICROPHONE

系统能力: SystemCapability.Multimedia.Audio.Device

返回值:

类型

说明

Promise<boolean>

Promise回调返回系统麦克风静音状态,true为静音,false为非静音。

示例:

  1. audioManager.isMicrophoneMute().then((value) => {
  2. console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
  3. });

on('deviceChange')(deprecated)

on(type: 'deviceChange', callback: Callback<DeviceChangeAction>): void

设备更改。音频设备连接状态变化。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的on替代。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

type

string

订阅的事件的类型。支持事件:'deviceChange'

callback

Callback<DeviceChangeAction>

获取设备更新详情。

示例:

  1. audioManager.on('deviceChange', (deviceChanged) => {
  2. console.info(`device change type : ${deviceChanged.type} `);
  3. console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
  4. console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
  5. console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
  6. });

off('deviceChange')(deprecated)

off(type: 'deviceChange', callback?: Callback<DeviceChangeAction>): void

取消订阅音频设备连接变化事件。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的off替代。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

type

string

订阅的事件的类型。支持事件:'deviceChange'

callback

Callback<DeviceChangeAction>

获取设备更新详情。

示例:

  1. audioManager.off('deviceChange', (deviceChanged) => {
  2. console.info('Should be no callback.');
  3. });

on('interrupt')

on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback<InterruptAction>): void

请求焦点并开始监听音频打断事件(当应用程序的音频被另一个播放事件中断,回调通知此应用程序)。

on('audioInterrupt')作用一致,均用于监听焦点变化。为无音频流的场景(未曾创建AudioRenderer对象),比如FM、语音唤醒等提供焦点变化监听功能。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。

interrupt

AudioInterrupt

音频打断事件类型的参数。

callback

Callback<InterruptAction>

音频打断事件回调方法。

示例:

  1. let interAudioInterrupt = {
  2. streamUsage:2,
  3. contentType:0,
  4. pauseWhenDucked:true
  5. };
  6. audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
  7. if (InterruptAction.actionType === 0) {
  8. console.info('An event to gain the audio focus starts.');
  9. console.info(`Focus gain event: ${InterruptAction} `);
  10. }
  11. if (InterruptAction.actionType === 1) {
  12. console.info('An audio interruption event starts.');
  13. console.info(`Audio interruption event: ${InterruptAction} `);
  14. }
  15. });

off('interrupt')

off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback<InterruptAction>): void

取消监听音频打断事件(删除监听事件,取消打断)。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。

interrupt

AudioInterrupt

音频打断事件类型的参数。

callback

Callback<InterruptAction>

音频打断事件回调方法。

示例:

  1. let interAudioInterrupt = {
  2. streamUsage:2,
  3. contentType:0,
  4. pauseWhenDucked:true
  5. };
  6. audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
  7. if (InterruptAction.actionType === 0) {
  8. console.info('An event to release the audio focus starts.');
  9. console.info(`Focus release event: ${InterruptAction} `);
  10. }
  11. });

AudioVolumeManager9+

音量管理。在使用AudioVolumeManager的接口前,需要使用getVolumeManager获取AudioVolumeManager实例。

getVolumeGroupManager9+

getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager>): void

获取音频组管理器,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

groupId

number

音量组id。

callback

AsyncCallback<AudioVolumeGroupManager>

回调,返回一个音量组实例。

示例:

  1. let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
  2. audioVolumeManager.getVolumeGroupManager(groupid, (err, value) => {
  3. if (err) {
  4. console.error(`Failed to obtain the volume group infos list. ${err}`);
  5. return;
  6. }
  7. console.info('Callback invoked to indicate that the volume group infos list is obtained.');
  8. });

getVolumeGroupManager9+

getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>

获取音频组管理器,使用promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

groupId

number

音量组id。

返回值:

类型

说明

Promise< AudioVolumeGroupManager >

音量组实例。

示例:

  1. let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
  2. let audioVolumeGroupManager;
  3. getVolumeGroupManager();
  4. async function getVolumeGroupManager(){
  5. audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
  6. console.info('Callback invoked to indicate that the volume group infos list is obtained.');
  7. }

on('volumeChange')9+

on(type: 'volumeChange', callback: Callback<VolumeEvent>): void

监听系统音量变化事件,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'volumeChange'。

callback

Callback<VolumeEvent>

回调方法。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioVolumeManager.on('volumeChange', (volumeEvent) => {
  2. console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
  3. console.info(`Volume level: ${volumeEvent.volume} `);
  4. console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
  5. });

AudioVolumeGroupManager9+

管理音频组音量。在调用AudioVolumeGroupManager的接口前,需要先通过 getVolumeGroupManager 创建实例。

getVolume9+

getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

获取指定流的音量,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<number>

回调返回音量大小。

示例:

  1. audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the volume. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the volume is obtained.');
  7. });

getVolume9+

getVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的音量,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<number>

Promise回调返回音量大小。

示例:

  1. audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
  2. console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
  3. });

getMinVolume9+

getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

获取指定流的最小音量,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<number>

回调返回最小音量。

示例:

  1. audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the minimum volume. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
  7. });

getMinVolume9+

getMinVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的最小音量,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<number>

Promise回调返回最小音量。

示例:

  1. audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
  2. console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
  3. });

getMaxVolume9+

getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

获取指定流的最大音量,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<number>

回调返回最大音量大小。

示例:

  1. audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the maximum volume. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
  7. });

getMaxVolume9+

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的最大音量,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<number>

Promise回调返回最大音量大小。

示例:

  1. audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
  2. console.info('Promised returned to indicate that the maximum volume is obtained.');
  3. });

isMute9+

isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void

获取指定音量流是否被静音,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

callback

AsyncCallback<boolean>

回调返回流静音状态,true为静音,false为非静音。

示例:

  1. audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the mute status. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
  7. });

isMute9+

isMute(volumeType: AudioVolumeType): Promise<boolean>

获取指定音量流是否被静音,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音量流类型。

返回值:

类型

说明

Promise<boolean>

Promise回调返回流静音状态,true为静音,false为非静音。

示例:

  1. audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
  2. console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
  3. });

getRingerMode9+

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

获取铃声模式,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioRingMode>

回调返回系统的铃声模式。

示例:

  1. audioVolumeGroupManager.getRingerMode((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the ringer mode.​ ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
  7. });

getRingerMode9+

getRingerMode(): Promise<AudioRingMode>

获取铃声模式,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

返回值:

类型

说明

Promise<AudioRingMode>

Promise回调返回系统的铃声模式。

示例:

  1. audioVolumeGroupManager.getRingerMode().then((value) => {
  2. console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
  3. });

on('ringerModeChange')9+

on(type: 'ringerModeChange', callback: Callback<AudioRingMode>): void

监听铃声模式变化事件。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。

callback

Callback<AudioRingMode>

回调方法。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioVolumeGroupManager.on('ringerModeChange', (ringerMode) => {
  2. console.info(`Updated ringermode: ${ringerMode}`);
  3. });

setMicrophoneMute9+

setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void

设置麦克风静音状态,使用callback方式异步返回结果。

需要权限: ohos.permission.MANAGE_AUDIO_CONFIG

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

mute

boolean

待设置的静音状态,true为静音,false为非静音。

callback

AsyncCallback<void>

回调返回设置成功或失败。

示例:

  1. audioVolumeGroupManager.setMicrophoneMute(true, (err) => {
  2. if (err) {
  3. console.error(`Failed to mute the microphone. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the microphone is muted.');
  7. });

setMicrophoneMute9+

setMicrophoneMute(mute: boolean): Promise<void>

设置麦克风静音状态,使用Promise方式异步返回结果。

需要权限: ohos.permission.MANAGE_AUDIO_CONFIG

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

mute

boolean

待设置的静音状态,true为静音,false为非静音。

返回值:

类型

说明

Promise<void>

Promise回调返回设置成功或失败。

示例:

  1. audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
  2. console.info('Promise returned to indicate that the microphone is muted.');
  3. });

isMicrophoneMute9+

isMicrophoneMute(callback: AsyncCallback<boolean>): void

获取麦克风静音状态,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

callback

AsyncCallback<boolean>

回调返回系统麦克风静音状态,true为静音,false为非静音。

示例:

  1. audioVolumeGroupManager.isMicrophoneMute((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the mute status of the microphone. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
  7. });

isMicrophoneMute9+

isMicrophoneMute(): Promise<boolean>

获取麦克风静音状态,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Volume

返回值:

类型

说明

Promise<boolean>

Promise回调返回系统麦克风静音状态,true为静音,false为非静音。

示例:

  1. audioVolumeGroupManager.isMicrophoneMute().then((value) => {
  2. console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
  3. });

on('micStateChange')9+

on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void

监听系统麦克风状态更改事件。

目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。

系统能力: SystemCapability.Multimedia.Audio.Volume

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'micStateChange'(系统麦克风状态变化事件,检测到系统麦克风状态改变时,触发该事件)。

callback

Callback<MicStateChangeEvent>

回调方法,返回变更后的麦克风状态。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioVolumeGroupManager.on('micStateChange', (micStateChange) => {
  2. console.info(`Current microphone status is: ${micStateChange.mute} `);
  3. });

AudioStreamManager9+

管理音频流。在使用AudioStreamManager的API前,需要使用getStreamManager获取AudioStreamManager实例。

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void

获取当前音频渲染器的信息。使用callback异步回调。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioRendererChangeInfoArray>

回调函数,返回当前音频渲染器的信息。

示例:

  1. audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => {
  2. console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
  3. if (err) {
  4. console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  5. } else {
  6. if (AudioRendererChangeInfoArray != null) {
  7. for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
  8. let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
  9. console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
  10. console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
  11. console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
  12. console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
  13. console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
  14. console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
  15. for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
  16. console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
  17. console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
  18. console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
  19. console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
  20. console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
  21. console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
  22. console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
  23. console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
  24. }
  25. }
  26. }
  27. }
  28. });

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray>

获取当前音频渲染器的信息。使用Promise异步回调。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<AudioRendererChangeInfoArray>

Promise对象,返回当前音频渲染器信息。

示例:

  1. async function getCurrentAudioRendererInfoArray(){
  2. await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
  3. console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
  4. if (AudioRendererChangeInfoArray != null) {
  5. for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
  6. let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
  7. console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
  8. console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
  9. console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
  10. console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
  11. console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
  12. console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
  13. for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
  14. console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
  15. console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
  16. console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
  17. console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
  18. console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
  19. console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
  20. console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
  21. console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
  22. }
  23. }
  24. }
  25. }).catch((err) => {
  26. console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  27. });
  28. }

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void

获取当前音频采集器的信息。使用callback异步回调。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioCapturerChangeInfoArray>

回调函数,返回当前音频采集器的信息。

示例:

  1. audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => {
  2. console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
  3. if (err) {
  4. console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  5. } else {
  6. if (AudioCapturerChangeInfoArray != null) {
  7. for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
  8. console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
  9. console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
  10. console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
  11. console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
  12. console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
  13. for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
  14. console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
  15. console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  16. console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  17. console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
  18. console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
  19. console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  20. console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  21. console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  22. }
  23. }
  24. }
  25. }
  26. });

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray>

获取当前音频采集器的信息。使用Promise异步回调。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<AudioCapturerChangeInfoArray>

Promise对象,返回当前音频渲染器信息。

示例:

  1. async function getCurrentAudioCapturerInfoArray(){
  2. await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
  3. console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
  4. if (AudioCapturerChangeInfoArray != null) {
  5. for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
  6. console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
  7. console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
  8. console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
  9. console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
  10. console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
  11. for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
  12. console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
  13. console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  14. console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  15. console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
  16. console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
  17. console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  18. console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  19. console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  20. }
  21. }
  22. }
  23. }).catch((err) => {
  24. console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  25. });
  26. }

on('audioRendererChange')9+

on(type: "audioRendererChange", callback: Callback<AudioRendererChangeInfoArray>): void

监听音频渲染器更改事件。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

事件类型,支持的事件'audioRendererChange':当音频渲染器发生更改时触发。

callback

Callback<AudioRendererChangeInfoArray>

回调函数。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
  2. for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
  3. let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
  4. console.info(`## RendererChange on is called for ${i} ##`);
  5. console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
  6. console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
  7. console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
  8. console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
  9. console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
  10. console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
  11. for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
  12. console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
  13. console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
  14. console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
  15. console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
  16. console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
  17. console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
  18. console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
  19. console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
  20. }
  21. }
  22. });

off('audioRendererChange')9+

off(type: "audioRendererChange"): void

取消监听音频渲染器更改事件。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

事件类型,支持的事件'audioRendererChange':音频渲染器更改事件。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioStreamManager.off('audioRendererChange');
  2. console.info('######### RendererChange Off is called #########');

on('audioCapturerChange')9+

on(type: "audioCapturerChange", callback: Callback<AudioCapturerChangeInfoArray>): void

监听音频采集器更改事件。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

type

string

事件类型,支持的事件'audioCapturerChange':当音频采集器发生更改时触发。

callback

Callback<AudioCapturerChangeInfoArray>

回调函数。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
  2. for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
  3. console.info(`## CapChange on is called for element ${i} ##`);
  4. console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
  5. console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
  6. console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
  7. console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
  8. console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
  9. let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
  10. for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
  11. console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
  12. console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  13. console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  14. console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
  15. console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
  16. console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  17. console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  18. console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  19. }
  20. }
  21. });

off('audioCapturerChange')9+

off(type: "audioCapturerChange"): void;

取消监听音频采集器更改事件。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

type

string

事件类型,支持的事件'audioCapturerChange':音频采集器更改事件。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioStreamManager.off('audioCapturerChange');
  2. console.info('######### CapturerChange Off is called #########');

isActive9+

isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void

获取指定音频流是否为活跃状态,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音频流类型。

callback

AsyncCallback<boolean>

回调返回流的活跃状态,true为活跃,false为不活跃。

示例:

  1. audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the active status of the stream. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
  7. });

isActive9+

isActive(volumeType: AudioVolumeType): Promise<boolean>

获取指定音频流是否为活跃状态,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

volumeType

AudioVolumeType

音频流类型。

返回值:

类型

说明

Promise<boolean>

Promise回调返回流的活跃状态,true为活跃,false为不活跃。

示例:

  1. audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
  2. console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
  3. });

AudioRoutingManager9+

音频路由管理。在使用AudioRoutingManager的接口前,需要使用getRoutingManager获取AudioRoutingManager实例。

getDevices9+

getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void

获取音频设备列表,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

deviceFlag

DeviceFlag

设备类型的flag。

callback

AsyncCallback<AudioDeviceDescriptors>

回调,返回设备列表。

示例:

  1. audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the device list. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the device list is obtained.');
  7. });

getDevices9+

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

获取音频设备列表,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

deviceFlag

DeviceFlag

设备类型的flag。

返回值:

类型

说明

Promise<AudioDeviceDescriptors>

Promise回调返回设备列表。

示例:

  1. audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
  2. console.info('Promise returned to indicate that the device list is obtained.');
  3. });

on9+

on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback<DeviceChangeAction>): void

设备更改。音频设备连接状态变化。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

type

string

订阅的事件的类型。支持事件:'deviceChange'

deviceFlag

DeviceFlag

设备类型的flag。

callback

Callback<DeviceChangeAction>

获取设备更新详情。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged) => {
  2. console.info('device change type : ' + deviceChanged.type);
  3. console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
  4. console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
  5. console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
  6. });

off9+

off(type: 'deviceChange', callback?: Callback<DeviceChangeAction>): void

取消订阅音频设备连接变化事件。

系统能力: SystemCapability.Multimedia.Audio.Device

参数:

参数名

类型

必填

说明

type

string

订阅的事件的类型。支持事件:'deviceChange'

callback

Callback<DeviceChangeAction>

获取设备更新详情。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. audioRoutingManager.off('deviceChange', (deviceChanged) => {
  2. console.info('Should be no callback.');
  3. });

setCommunicationDevice9+

setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void

设置通信设备激活状态,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Communication

参数:

参数名

类型

必填

说明

deviceType

CommunicationDeviceType

音频设备类型。

active

boolean

设备激活状态。

callback

AsyncCallback<void>

回调返回设置成功或失败。

示例:

  1. audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err) => {
  2. if (err) {
  3. console.error(`Failed to set the active status of the device. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the device is set to the active status.');
  7. });

setCommunicationDevice9+

setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void>

设置通信设备激活状态,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Communication

参数:

参数名

类型

必填

说明

deviceType

CommunicationDeviceType

活跃音频设备类型。

active

boolean

设备激活状态。

返回值:

类型

说明

Promise<void>

Promise回调返回设置成功或失败。

示例:

  1. audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
  2. console.info('Promise returned to indicate that the device is set to the active status.');
  3. });

isCommunicationDeviceActive9+

isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void

获取指定通信设备的激活状态,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Communication

参数:

参数名

类型

必填

说明

deviceType

CommunicationDeviceType

活跃音频设备类型。

callback

AsyncCallback<boolean>

回调返回设备的激活状态。

示例:

  1. audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the active status of the device. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the active status of the device is obtained.');
  7. });

isCommunicationDeviceActive9+

isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>

获取指定通信设备的激活状态,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Communication

参数:

参数名

类型

必填

说明

deviceType

CommunicationDeviceType

活跃音频设备类型。

返回值:

Type

Description

Promise<boolean>

Promise回调返回设备的激活状态。

示例:

  1. audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value) => {
  2. console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
  3. });

AudioRendererChangeInfoArray9+

数组类型,AudioRenderChangeInfo数组,只读。

系统能力: SystemCapability.Multimedia.Audio.Renderer

AudioRendererChangeInfo9+

描述音频渲染器更改信息。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

类型

可读

可写

说明

streamId

number

音频流唯一id。

rendererInfo

AudioRendererInfo

音频渲染器信息。

deviceDescriptors

AudioDeviceDescriptors

音频设备描述。

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. const audioManager = audio.getAudioManager();
  3. let audioStreamManager = audioManager.getStreamManager();
  4. let resultFlag = false;
  5. audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
  6. for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
  7. console.info(`## RendererChange on is called for ${i} ##`);
  8. console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
  9. console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
  10. console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
  11. console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
  12. let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
  13. for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
  14. console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
  15. console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  16. console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  17. console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
  18. console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
  19. console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  20. console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  21. console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  22. }
  23. if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
  24. resultFlag = true;
  25. console.info(`ResultFlag for ${i} is: ${resultFlag}`);
  26. }
  27. }
  28. });

AudioCapturerChangeInfoArray9+

数组类型,AudioCapturerChangeInfo数组,只读。

系统能力: SystemCapability.Multimedia.Audio.Capturer

AudioCapturerChangeInfo9+

描述音频采集器更改信息。

系统能力: SystemCapability.Multimedia.Audio.Capturer

名称

类型

可读

可写

说明

streamId

number

音频流唯一id。

capturerInfo

AudioCapturerInfo

音频采集器信息。

deviceDescriptors

AudioDeviceDescriptors

音频设备描述。

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. const audioManager = audio.getAudioManager();
  3. let audioStreamManager = audioManager.getStreamManager();
  4. let resultFlag = false;
  5. audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
  6. for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
  7. console.info(`## CapChange on is called for element ${i} ##`);
  8. console.info(`StrId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
  9. console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
  10. console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
  11. let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
  12. for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
  13. console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
  14. console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  15. console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  16. console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
  17. console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
  18. console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  19. console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  20. console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  21. }
  22. if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
  23. resultFlag = true;
  24. console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
  25. }
  26. }
  27. });

AudioDeviceDescriptors

设备属性数组类型,为AudioDeviceDescriptor的数组,只读。

AudioDeviceDescriptor

描述音频设备。

系统能力: SystemCapability.Multimedia.Audio.Device

名称

类型

可读

可写

说明

deviceRole

DeviceRole

设备角色。

deviceType

DeviceType

设备类型。

id9+

number

设备id,唯一。

name9+

string

设备名称。

address9+

string

设备地址。

sampleRates9+

Array<number>

支持的采样率。

channelCounts9+

Array<number>

支持的通道数。

channelMasks9+

Array<number>

支持的通道掩码。

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. function displayDeviceProp(value) {
  3. deviceRoleValue = value.deviceRole;
  4. deviceTypeValue = value.deviceType;
  5. }
  6. let deviceRoleValue = null;
  7. let deviceTypeValue = null;
  8. const promise = audio.getAudioManager().getDevices(1);
  9. promise.then(function (value) {
  10. console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
  11. value.forEach(displayDeviceProp);
  12. if (deviceTypeValue != null && deviceRoleValue != null){
  13. console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS');
  14. } else {
  15. console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL');
  16. }
  17. });

AudioRenderer8+

提供音频渲染的相关接口。在调用AudioRenderer的接口前,需要先通过createAudioRenderer创建实例。

属性

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

类型

可读

可写

说明

state8+

AudioState

音频渲染器的状态。

示例:

  1. let state = audioRenderer.state;

getRendererInfo8+

getRendererInfo(callback: AsyncCallback<AudioRendererInfo>): void

获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioRendererInfo>

返回音频渲染器的信息。

示例:

  1. audioRenderer.getRendererInfo((err, rendererInfo) => {
  2. console.info('Renderer GetRendererInfo:');
  3. console.info(`Renderer content: ${rendererInfo.content}`);
  4. console.info(`Renderer usage: ${rendererInfo.usage}`);
  5. console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
  6. });

getRendererInfo8+

getRendererInfo(): Promise<AudioRendererInfo>

获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<AudioRendererInfo>

Promise用于返回音频渲染器信息。

示例:

  1. audioRenderer.getRendererInfo().then((rendererInfo) => {
  2. console.info('Renderer GetRendererInfo:');
  3. console.info(`Renderer content: ${rendererInfo.content}`);
  4. console.info(`Renderer usage: ${rendererInfo.usage}`);
  5. console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
  6. }).catch((err) => {
  7. console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
  8. });

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

获取音频流信息,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioStreamInfo>

回调返回音频流信息。

示例:

  1. audioRenderer.getStreamInfo((err, streamInfo) => {
  2. console.info('Renderer GetStreamInfo:');
  3. console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  4. console.info(`Renderer channel: ${streamInfo.channels}`);
  5. console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  6. console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
  7. });

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

获取音频流信息,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<AudioStreamInfo>

Promise返回音频流信息.

示例:

  1. audioRenderer.getStreamInfo().then((streamInfo) => {
  2. console.info('Renderer GetStreamInfo:');
  3. console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  4. console.info(`Renderer channel: ${streamInfo.channels}`);
  5. console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  6. console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
  7. }).catch((err) => {
  8. console.error(`ERROR: ${err}`);
  9. });

getAudioStreamId9+

getAudioStreamId(callback: AsyncCallback<number>): void

获取音频流id,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<number>

回调返回音频流id。

示例:

  1. audioRenderer.getAudioStreamId((err, streamid) => {
  2. console.info(`Renderer GetStreamId: ${streamid}`);
  3. });

getAudioStreamId9+

getAudioStreamId(): Promise<number>

获取音频流id,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<number>

Promise返回音频流id。

示例:

  1. audioRenderer.getAudioStreamId().then((streamid) => {
  2. console.info(`Renderer getAudioStreamId: ${streamid}`);
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

start8+

start(callback: AsyncCallback<void>): void

启动音频渲染器。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。

示例:

  1. audioRenderer.start((err) => {
  2. if (err) {
  3. console.error('Renderer start failed.');
  4. } else {
  5. console.info('Renderer start success.');
  6. }
  7. });

start8+

start(): Promise<void>

启动音频渲染器。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<void>

Promise方式异步返回结果。

示例:

  1. audioRenderer.start().then(() => {
  2. console.info('Renderer started');
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

pause8+

pause(callback: AsyncCallback<void>): void

暂停渲染。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

返回回调的结果。

示例:

  1. audioRenderer.pause((err) => {
  2. if (err) {
  3. console.error('Renderer pause failed');
  4. } else {
  5. console.info('Renderer paused.');
  6. }
  7. });

pause8+

pause(): Promise<void>

暂停渲染。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<void>

Promise方式异步返回结果。

示例:

  1. audioRenderer.pause().then(() => {
  2. console.info('Renderer paused');
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

drain8+

drain(callback: AsyncCallback<void>): void

检查缓冲区是否已被耗尽。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

返回回调的结果。

示例:

  1. audioRenderer.drain((err) => {
  2. if (err) {
  3. console.error('Renderer drain failed');
  4. } else {
  5. console.info('Renderer drained.');
  6. }
  7. });

drain8+

drain(): Promise<void>

检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<void>

Promise方式异步返回结果。

示例:

  1. audioRenderer.drain().then(() => {
  2. console.info('Renderer drained successfully');
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

stop8+

stop(callback: AsyncCallback<void>): void

停止渲染。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

返回回调的结果。

示例:

  1. audioRenderer.stop((err) => {
  2. if (err) {
  3. console.error('Renderer stop failed');
  4. } else {
  5. console.info('Renderer stopped.');
  6. }
  7. });

stop8+

stop(): Promise<void>

停止渲染。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<void>

Promise方式异步返回结果。

示例:

  1. audioRenderer.stop().then(() => {
  2. console.info('Renderer stopped successfully');
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

release8+

release(callback: AsyncCallback<void>): void

释放音频渲染器。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

返回回调的结果。

示例:

  1. audioRenderer.release((err) => {
  2. if (err) {
  3. console.error('Renderer release failed');
  4. } else {
  5. console.info('Renderer released.');
  6. }
  7. });

release8+

release(): Promise<void>

释放渲染器。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<void>

Promise方式异步返回结果。

示例:

  1. audioRenderer.release().then(() => {
  2. console.info('Renderer released successfully');
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

write8+

write(buffer: ArrayBuffer, callback: AsyncCallback<number>): void

写入缓冲区。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

buffer

ArrayBuffer

要写入缓冲区的数据。

callback

AsyncCallback<number>

回调如果成功,返回写入的字节数,否则返回errorcode。

示例:

  1. let bufferSize;
  2. audioRenderer.getBufferSize().then((data)=> {
  3. console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
  7. });
  8. console.info(`Buffer size: ${bufferSize}`);
  9. let context = featureAbility.getContext();
  10. let path;
  11. async function getCacheDir(){
  12. path = await context.getCacheDir();
  13. }
  14. let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
  15. let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  16. let stat = await fs.stat(path);
  17. let buf = new ArrayBuffer(bufferSize);
  18. let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
  19. for (let i = 0;i < len; i++) {
  20. let options = {
  21. offset: i * bufferSize,
  22. length: bufferSize
  23. }
  24. let readsize = await fs.read(file.fd, buf, options)
  25. let writeSize = await new Promise((resolve,reject)=>{
  26. audioRenderer.write(buf,(err,writeSize)=>{
  27. if(err){
  28. reject(err)
  29. }else{
  30. resolve(writeSize)
  31. }
  32. })
  33. })
  34. }

write8+

write(buffer: ArrayBuffer): Promise<number>

写入缓冲区。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<number>

Promise返回结果,如果成功,返回写入的字节数,否则返回errorcode。

示例:

  1. let bufferSize;
  2. audioRenderer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
  7. });
  8. console.info(`BufferSize: ${bufferSize}`);
  9. let context = featureAbility.getContext();
  10. let path;
  11. async function getCacheDir(){
  12. path = await context.getCacheDir();
  13. }
  14. let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
  15. let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  16. let stat = await fs.stat(path);
  17. let buf = new ArrayBuffer(bufferSize);
  18. let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
  19. for (let i = 0;i < len; i++) {
  20. let options = {
  21. offset: i * bufferSize,
  22. length: bufferSize
  23. }
  24. let readsize = await fs.read(file.fd, buf, options)
  25. try{
  26. let writeSize = await audioRenderer.write(buf);
  27. } catch(err) {
  28. console.error(`audioRenderer.write err: ${err}`);
  29. }
  30. }

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<number>

回调返回时间戳。

示例:

  1. audioRenderer.getAudioTime((err, timestamp) => {
  2. console.info(`Current timestamp: ${timestamp}`);
  3. });

getAudioTime8+

getAudioTime(): Promise<number>

获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

描述

Promise<number>

Promise回调返回时间戳。

示例:

  1. audioRenderer.getAudioTime().then((timestamp) => {
  2. console.info(`Current timestamp: ${timestamp}`);
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<number>

回调返回缓冲区大小。

示例:

  1. let bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
  2. if (err) {
  3. console.error('getBufferSize error');
  4. }
  5. });

getBufferSize8+

getBufferSize(): Promise<number>

获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<number>

promise回调返回缓冲区大小。

示例:

  1. let bufferSize;
  2. audioRenderer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
  7. });

setRenderRate8+

setRenderRate(rate: AudioRendererRate, callback: AsyncCallback<void>): void

设置音频渲染速率。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

rate

AudioRendererRate

渲染的速率。

callback

AsyncCallback<void>

用于返回执行结果的回调。

示例:

  1. audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
  2. if (err) {
  3. console.error('Failed to set params');
  4. } else {
  5. console.info('Callback invoked to indicate a successful render rate setting.');
  6. }
  7. });

setRenderRate8+

setRenderRate(rate: AudioRendererRate): Promise<void>

设置音频渲染速率。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

rate

AudioRendererRate

渲染的速率。

返回值:

类型

说明

Promise<void>

Promise用于返回执行结果。

示例:

  1. audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
  2. console.info('setRenderRate SUCCESS');
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

getRenderRate8+

getRenderRate(callback: AsyncCallback<AudioRendererRate>): void

获取当前渲染速率。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioRendererRate>

回调返回渲染速率。

示例:

  1. audioRenderer.getRenderRate((err, renderrate) => {
  2. console.info(`getRenderRate: ${renderrate}`);
  3. });

getRenderRate8+

getRenderRate(): Promise<AudioRendererRate>

获取当前渲染速率。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

类型

说明

Promise<AudioRendererRate>

Promise回调返回渲染速率。

示例:

  1. audioRenderer.getRenderRate().then((renderRate) => {
  2. console.info(`getRenderRate: ${renderRate}`);
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

setInterruptMode9+

setInterruptMode(mode: InterruptMode): Promise<void>

设置应用的焦点模型。使用Promise异步回调。

系统能力: SystemCapability.Multimedia.Audio.Interrupt

参数:

参数名

类型

必填

说明

mode

InterruptMode

焦点模型。

返回值:

类型

说明

Promise<void>

以Promise对象返回结果,设置成功时返回undefined,否则返回error。

示例:

  1. let mode = 0;
  2. audioRenderer.setInterruptMode(mode).then(data=>{
  3. console.info('setInterruptMode Success!');
  4. }).catch((err) => {
  5. console.error(`setInterruptMode Fail: ${err}`);
  6. });

setInterruptMode9+

setInterruptMode(mode: InterruptMode, callback: AsyncCallback<void>): void

设置应用的焦点模型。使用Callback回调返回执行结果。

系统能力: SystemCapability.Multimedia.Audio.Interrupt

参数:

参数名

类型

必填

说明

mode

InterruptMode

焦点模型。

callback

AsyncCallback<void>

回调返回执行结果。

示例:

  1. let mode = 1;
  2. audioRenderer.setInterruptMode(mode, (err, data)=>{
  3. if(err){
  4. console.error(`setInterruptMode Fail: ${err}`);
  5. }
  6. console.info('setInterruptMode Success!');
  7. });

setVolume9+

setVolume(volume: number): Promise<void>

设置应用的音量。使用Promise异步回调。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

volume

number

音量值范围为0.0-1.0。

返回值:

类型

说明

Promise<void>

以Promise对象返回结果,设置成功时返回undefined,否则返回error。

示例:

  1. audioRenderer.setVolume(0.5).then(data=>{
  2. console.info('setVolume Success!');
  3. }).catch((err) => {
  4. console.error(`setVolume Fail: ${err}`);
  5. });

setVolume9+

setVolume(volume: number, callback: AsyncCallback<void>): void

设置应用的音量。使用Callback回调返回执行结果。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

volume

number

音量值范围为0.0-1.0。

callback

AsyncCallback<void>

回调返回执行结果。

示例:

  1. audioRenderer.setVolume(0.5, (err, data)=>{
  2. if(err){
  3. console.error(`setVolume Fail: ${err}`);
  4. }
  5. console.info('setVolume Success!');
  6. });

on('audioInterrupt')9+

on(type: 'audioInterrupt', callback: Callback<InterruptEvent>): void

监听音频中断事件。使用callback获取中断事件。

on('interrupt')一致,均用于监听焦点变化,AudioRenderer对象start事件发生时主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。

系统能力: SystemCapability.Multimedia.Audio.Interrupt

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频播放被中断。)

callback

Callback<InterruptEvent>

被监听的中断事件的回调。

错误码:

以下错误码的详细介绍请参见音频错误码

错误码ID

错误信息

6800101

if input parameter value error

示例:

  1. let isPlay;
  2. let started;
  3. onAudioInterrupt();
  4. async function onAudioInterrupt(){
  5. audioRenderer.on('audioInterrupt', async(interruptEvent) => {
  6. if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
  7. switch (interruptEvent.hintType) {
  8. case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
  9. console.info('Force paused. Stop writing');
  10. isPlay = false;
  11. break;
  12. case audio.InterruptHint.INTERRUPT_HINT_STOP:
  13. console.info('Force stopped. Stop writing');
  14. isPlay = false;
  15. break;
  16. }
  17. } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
  18. switch (interruptEvent.hintType) {
  19. case audio.InterruptHint.INTERRUPT_HINT_RESUME:
  20. console.info('Resume force paused renderer or ignore');
  21. await audioRenderer.start().then(async function () {
  22. console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
  23. started = true;
  24. }).catch((err) => {
  25. console.error(`AudioInterruptMusic: renderInstant start :ERROR : ${err}`);
  26. started = false;
  27. });
  28. if (started) {
  29. isPlay = true;
  30. console.info(`AudioInterruptMusic Renderer started : isPlay : ${isPlay}`);
  31. } else {
  32. console.error('AudioInterruptMusic Renderer start failed');
  33. }
  34. break;
  35. case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
  36. console.info('Choose to pause or ignore');
  37. if (isPlay == true) {
  38. isPlay == false;
  39. console.info('AudioInterruptMusic: Media PAUSE : TRUE');
  40. } else {
  41. isPlay = true;
  42. console.info('AudioInterruptMusic: Media PLAY : TRUE');
  43. }
  44. break;
  45. }
  46. }
  47. });
  48. }

on('markReach')8+

on(type: "markReach", frame: number, callback: Callback<number>): void

订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被调用。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'markReach'。

frame

number

触发事件的帧数。 该值必须大于 0。

callback

Callback<number>

触发事件时调用的回调。

示例:

  1. audioRenderer.on('markReach', 1000, (position) => {
  2. if (position == 1000) {
  3. console.info('ON Triggered successfully');
  4. }
  5. });

off('markReach') 8+

off(type: 'markReach'): void

取消订阅标记事件。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

要取消订阅事件的类型。支持的事件为:'markReach'。

示例:

  1. audioRenderer.off('markReach');

on('periodReach') 8+

on(type: "periodReach", frame: number, callback: Callback<number>): void

订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,触发回调并返回设定的值。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'periodReach'。

frame

number

触发事件的帧数。 该值必须大于 0。

callback

Callback<number>

触发事件时调用的回调。

示例:

  1. audioRenderer.on('periodReach', 1000, (position) => {
  2. if (position == 1000) {
  3. console.info('ON Triggered successfully');
  4. }
  5. });

off('periodReach') 8+

off(type: 'periodReach'): void

取消订阅标记事件。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

要取消订阅事件的类型。支持的事件为:'periodReach'。

示例:

  1. audioRenderer.off('periodReach')

on('stateChange') 8+

on(type: 'stateChange', callback: Callback<AudioState>): void

订阅监听状态变化。

系统能力: SystemCapability.Multimedia.Audio.Renderer

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'stateChange'。

callback

Callback<AudioState>

返回监听的状态。

示例:

  1. audioRenderer.on('stateChange', (state) => {
  2. if (state == 1) {
  3. console.info('audio renderer state is: STATE_PREPARED');
  4. }
  5. if (state == 2) {
  6. console.info('audio renderer state is: STATE_RUNNING');
  7. }
  8. });

AudioCapturer8+

提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过createAudioCapturer创建实例。

属性

系统能力: SystemCapability.Multimedia.Audio.Capturer

名称

类型

可读

可写

说明

state8+

AudioState

音频采集器状态。

示例:

  1. let state = audioCapturer.state;

getCapturerInfo8+

getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo>): void

获取采集器信息。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioCapturerInfo>

使用callback方式异步返回采集器信息。

示例:

  1. audioCapturer.getCapturerInfo((err, capturerInfo) => {
  2. if (err) {
  3. console.error('Failed to get capture info');
  4. } else {
  5. console.info('Capturer getCapturerInfo:');
  6. console.info(`Capturer source: ${capturerInfo.source}`);
  7. console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
  8. }
  9. });

getCapturerInfo8+

getCapturerInfo(): Promise<AudioCapturerInfo>

获取采集器信息。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

类型

说明

Promise<AudioCapturerInfo>

使用Promise方式异步返回采集器信息。

示例:

  1. audioCapturer.getCapturerInfo().then((audioParamsGet) => {
  2. if (audioParamsGet != undefined) {
  3. console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
  4. console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
  5. console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
  6. } else {
  7. console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
  8. console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
  9. }
  10. }).catch((err) => {
  11. console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
  12. });

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

获取采集器流信息。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<AudioStreamInfo>

使用callback方式异步返回流信息。

示例:

  1. audioCapturer.getStreamInfo((err, streamInfo) => {
  2. if (err) {
  3. console.error('Failed to get stream info');
  4. } else {
  5. console.info('Capturer GetStreamInfo:');
  6. console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
  7. console.info(`Capturer channel: ${streamInfo.channels}`);
  8. console.info(`Capturer format: ${streamInfo.sampleFormat}`);
  9. console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
  10. }
  11. });

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

获取采集器流信息。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

类型

说明

Promise<AudioStreamInfo>

使用Promise方式异步返回流信息。

示例:

  1. audioCapturer.getStreamInfo().then((audioParamsGet) => {
  2. console.info('getStreamInfo:');
  3. console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
  4. console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
  5. console.info(`channels: ${audioParamsGet.channels}`);
  6. console.info(`encodingType: ${audioParamsGet.encodingType}`);
  7. }).catch((err) => {
  8. console.error(`getStreamInfo :ERROR: ${err}`);
  9. });

getAudioStreamId9+

getAudioStreamId(callback: AsyncCallback<number>): void

获取音频流id,使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<number>

回调返回音频流id。

示例:

  1. audioCapturer.getAudioStreamId((err, streamid) => {
  2. console.info(`audioCapturer GetStreamId: ${streamid}`);
  3. });

getAudioStreamId9+

getAudioStreamId(): Promise<number>

获取音频流id,使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

类型

说明

Promise<number>

Promise返回音频流id。

示例:

  1. audioCapturer.getAudioStreamId().then((streamid) => {
  2. console.info(`audioCapturer getAudioStreamId: ${streamid}`);
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

start8+

start(callback: AsyncCallback<void>): void

启动音频采集器。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

使用callback方式异步返回结果。

示例:

  1. audioCapturer.start((err) => {
  2. if (err) {
  3. console.error('Capturer start failed.');
  4. } else {
  5. console.info('Capturer start success.');
  6. }
  7. });

start8+

start(): Promise<void>

启动音频采集器。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

类型

说明

Promise<void>

使用Promise方式异步返回结果。

示例:

  1. audioCapturer.start().then(() => {
  2. console.info('AudioFrameworkRecLog: ---------START---------');
  3. console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  4. console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
  5. console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  6. if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
  7. console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
  8. }
  9. }).catch((err) => {
  10. console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
  11. });

stop8+

stop(callback: AsyncCallback<void>): void

停止采集。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

使用callback方式异步返回结果。

示例:

  1. audioCapturer.stop((err) => {
  2. if (err) {
  3. console.error('Capturer stop failed');
  4. } else {
  5. console.info('Capturer stopped.');
  6. }
  7. });

stop8+

stop(): Promise<void>

停止采集。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

类型

说明

Promise<void>

使用Promise方式异步返回结果。

示例:

  1. audioCapturer.stop().then(() => {
  2. console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
  3. console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
  4. if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
  5. console.info('AudioFrameworkRecLog: State is Stopped:');
  6. }
  7. }).catch((err) => {
  8. console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
  9. });

release8+

release(callback: AsyncCallback<void>): void

释放采集器。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

使用callback方式异步返回结果。

示例:

  1. audioCapturer.release((err) => {
  2. if (err) {
  3. console.error('capturer release failed');
  4. } else {
  5. console.info('capturer released.');
  6. }
  7. });

release8+

release(): Promise<void>

释放采集器。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

类型

说明

Promise<void>

使用Promise方式异步返回结果。

示例:

  1. let stateFlag;
  2. audioCapturer.release().then(() => {
  3. console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
  4. console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
  5. console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
  6. console.info(`AudioFrameworkRecLog: stateFlag : ${stateFlag}`);
  7. }).catch((err) => {
  8. console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
  9. });

read8+

read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer>): void

读入缓冲区。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

size

number

读入的字节数。

isBlockingRead

boolean

是否阻塞读操作。

callback

AsyncCallback<ArrayBuffer>

使用callback方式异步返回缓冲区。

示例:

  1. let bufferSize;
  2. audioCapturer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
  7. });
  8. audioCapturer.read(bufferSize, true, async(err, buffer) => {
  9. if (!err) {
  10. console.info('Success in reading the buffer data');
  11. }
  12. });

read8+

read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer>

读入缓冲区。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

size

number

读入的字节数。

isBlockingRead

boolean

是否阻塞读操作。

返回值:

类型

说明

Promise<ArrayBuffer>

如果操作成功,返回读取的缓冲区数据;否则返回错误代码。

示例:

  1. let bufferSize;
  2. audioCapturer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
  7. });
  8. console.info(`Buffer size: ${bufferSize}`);
  9. audioCapturer.read(bufferSize, true).then((buffer) => {
  10. console.info('buffer read successfully');
  11. }).catch((err) => {
  12. console.info(`ERROR : ${err}`);
  13. });

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

获取时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<number>

使用callback方式异步返回结果。

示例:

  1. audioCapturer.getAudioTime((err, timestamp) => {
  2. console.info(`Current timestamp: ${timestamp}`);
  3. });

getAudioTime8+

getAudioTime(): Promise<number>

获取时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

类型

说明

Promise<number>

使用Promise方式异步返回结果。

示例:

  1. audioCapturer.getAudioTime().then((audioTime) => {
  2. console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
  3. }).catch((err) => {
  4. console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
  5. });

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

callback

AsyncCallback<number>

使用callback方式异步返回缓冲区大小。

示例:

  1. audioCapturer.getBufferSize((err, bufferSize) => {
  2. if (!err) {
  3. console.info(`BufferSize : ${bufferSize}`);
  4. audioCapturer.read(bufferSize, true).then((buffer) => {
  5. console.info(`Buffer read is ${buffer}`);
  6. }).catch((err) => {
  7. console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
  8. });
  9. }
  10. });

getBufferSize8+

getBufferSize(): Promise<number>

获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。

系统能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

类型

说明

Promise<number>

使用Promise方式异步返回缓冲区大小。

示例:

  1. let bufferSize;
  2. audioCapturer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
  7. });

on('markReach')8+

on(type: "markReach", frame: number, callback: Callback<number>): void

订阅标记到达的事件。 当采集的帧数达到 frame 参数的值时,回调被触发。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'markReach'。

frame

number

触发事件的帧数。 该值必须大于0。

callback

Callback<number>

使用callback方式异步返回被触发事件的回调。

示例:

  1. audioCapturer.on('markReach', 1000, (position) => {
  2. if (position == 1000) {
  3. console.info('ON Triggered successfully');
  4. }
  5. });

off('markReach')8+

off(type: 'markReach'): void

取消订阅标记到达的事件。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

type

string

取消事件回调类型,支持的事件为:'markReach'。

示例:

  1. audioCapturer.off('markReach');

on('periodReach')8+

on(type: "periodReach", frame: number, callback: Callback<number>): void

订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,触发回调并返回设定的值。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'periodReach'。

frame

number

触发事件的帧数。 该值必须大于0。

callback

Callback<number>

使用callback方式异步返回被触发事件的回调

示例:

  1. audioCapturer.on('periodReach', 1000, (position) => {
  2. if (position == 1000) {
  3. console.info('ON Triggered successfully');
  4. }
  5. });

off('periodReach')8+

off(type: 'periodReach'): void

取消订阅标记到达的事件。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

type

string

取消事件回调类型,支持的事件为:'periodReach'。

示例:

  1. audioCapturer.off('periodReach')

on('stateChange') 8+

on(type: 'stateChange', callback: Callback<AudioState>): void

订阅监听状态变化。

系统能力: SystemCapability.Multimedia.Audio.Capturer

参数:

参数名

类型

必填

说明

type

string

事件回调类型,支持的事件为:'stateChange'。

callback

Callback<AudioState>

返回监听的状态。

示例:

  1. audioCapturer.on('stateChange', (state) => {
  2. if (state == 1) {
  3. console.info('audio capturer state is: STATE_PREPARED');
  4. }
  5. if (state == 2) {
  6. console.info('audio capturer state is: STATE_RUNNING');
  7. }
  8. });

ActiveDeviceType(deprecated)

枚举,活跃设备类型。

说明

从 API version 9 开始废弃,建议使用CommunicationDeviceType替代。

系统能力: SystemCapability.Multimedia.Audio.Device

名称

说明

SPEAKER

2

扬声器。

BLUETOOTH_SCO

7

蓝牙设备SCO(Synchronous Connection Oriented)连接。

InterruptActionType(deprecated)

枚举,中断事件返回类型。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

说明

TYPE_ACTIVATED

0

表示触发焦点事件。

TYPE_INTERRUPT

1

表示音频打断事件。

AudioInterrupt(deprecated)

音频监听事件传入的参数。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

类型

必填

说明

streamUsage

StreamUsage

音频流使用类型。

contentType

ContentType

音频打断媒体类型。

pauseWhenDucked

boolean

音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。

InterruptAction(deprecated)

音频打断/获取焦点事件的回调方法。

说明

从 API version 7 开始支持,从 API version 9 开始废弃。建议使用InterruptEvent替代。

系统能力: SystemCapability.Multimedia.Audio.Renderer

名称

类型

必填

说明

actionType

InterruptActionType

事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。

type

InterruptType

打断事件类型。

hint

InterruptHint

打断事件提示。

activated

boolean

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号