GGiteelink fix
b6988588创建于 2025年6月16日历史提交

@ohos.multimedia.audio (音频管理)

音频管理提供基础的音频控制能力,包括音量调节、设备管理、数据采集及渲染。

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

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

导入模块

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

常量

名称 类型 可读 可写 说明
DEFAULT_VOLUME_GROUP_ID9+ number 默认音量组id。
系统能力: SystemCapability.Multimedia.Audio.Volume
DEFAULT_INTERRUPT_GROUP_ID9+ number 默认音频中断组id。
系统能力: SystemCapability.Multimedia.Audio.Interrupt

示例:

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

const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;

audio.getAudioManager

getAudioManager(): AudioManager

获取音频管理器。

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

返回值:

类型 说明
AudioManager 音频管理器对象。

示例:

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

let audioManager = audio.getAudioManager();

audio.createAudioRenderer8+

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

获取音频渲染器。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
options AudioRendererOptions 配置渲染器。
callback AsyncCallback<AudioRenderer> 回调函数。当获取音频渲染器成功,err为undefined,data为获取到的音频渲染器对象;否则为错误对象。

示例:

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

let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率。
  channels: audio.AudioChannel.CHANNEL_2, // 通道。
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式。
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式。
};

let audioRendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
  rendererFlags: 0 // 音频渲染器标志。
};

let audioRendererOptions: audio.AudioRendererOptions = {
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo
};

audio.createAudioRenderer(audioRendererOptions,(err, data) => {
  if (err) {
    console.error(`AudioRenderer Created: Error: ${err}`);
  } else {
    console.info('AudioRenderer Created: Success: SUCCESS');
    let audioRenderer = data;
  }
});

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer>

获取音频渲染器。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
options AudioRendererOptions 配置渲染器。

返回值:

类型 说明
Promise<AudioRenderer> Promise对象,返回音频渲染器对象。

示例:

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

let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率。
  channels: audio.AudioChannel.CHANNEL_2, // 通道。
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式。
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式。
};

let audioRendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
  rendererFlags: 0 // 音频渲染器标志。
};

let audioRendererOptions: audio.AudioRendererOptions = {
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo
};

let audioRenderer: audio.AudioRenderer;

audio.createAudioRenderer(audioRendererOptions).then((data) => {
  audioRenderer = data;
  console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
});

audio.createAudioCapturer8+

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

获取音频采集器。使用callback异步回调。

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

需要权限: ohos.permission.MICROPHONE

当设置Mic音频源(即SourceType为SOURCE_TYPE_MIC、SOURCE_TYPE_VOICE_RECOGNITION、SOURCE_TYPE_VOICE_COMMUNICATION、SOURCE_TYPE_VOICE_MESSAGE、SOURCE_TYPE_CAMCORDER)时需要该权限。

参数:

参数名 类型 必填 说明
options AudioCapturerOptions 配置音频采集器。
callback AsyncCallback<AudioCapturer> 回调函数。当获取音频采集器成功,err为undefined,data为获取到的音频采集器对象;否则为错误对象。异常将返回error对象:
错误码6800301:表示参数校验异常、权限校验异常或系统处理异常(具体错误查看系统日志)。
错误码6800101:表示必选参数为空或参数类型错误。

示例:

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

let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率。
  channels: audio.AudioChannel.CHANNEL_2, // 通道。
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式。
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式。
};

let audioCapturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
  capturerFlags: 0 // 音频采集器标志。
};

let audioCapturerOptions: audio.AudioCapturerOptions = {
  streamInfo: audioStreamInfo,
  capturerInfo: audioCapturerInfo
};

audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
  if (err) {
    console.error(`AudioCapturer Created : Error: ${err}`);
  } else {
    console.info('AudioCapturer Created : Success : SUCCESS');
    let audioCapturer = data;
  }
});

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer>

获取音频采集器。使用Promise异步回调。

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

需要权限: ohos.permission.MICROPHONE

当设置Mic音频源(即SourceType为SOURCE_TYPE_MIC、SOURCE_TYPE_VOICE_RECOGNITION、SOURCE_TYPE_VOICE_COMMUNICATION、SOURCE_TYPE_VOICE_MESSAGE、SOURCE_TYPE_CAMCORDER)时需要该权限。

参数:

参数名 类型 必填 说明
options AudioCapturerOptions 配置音频采集器。

返回值:

类型 说明
Promise<AudioCapturer> Promise对象,成功将返回音频采集器对象,异常将返回error对象:
错误码6800301:表示参数校验异常、权限校验异常或系统处理异常(具体错误查看系统日志)。
错误码6800101:表示必选参数为空或参数类型错误。

示例:

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

let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率。
  channels: audio.AudioChannel.CHANNEL_2, // 通道。
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式。
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式。
};

let audioCapturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
  capturerFlags: 0 // 音频采集器标志。
};

let audioCapturerOptions:audio.AudioCapturerOptions = {
  streamInfo: audioStreamInfo,
  capturerInfo: audioCapturerInfo
};

let audioCapturer: audio.AudioCapturer;

audio.createAudioCapturer(audioCapturerOptions).then((data) => {
  audioCapturer = data;
  console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`AudioCapturer Created : ERROR : ${err}`);
});

AudioVolumeType

表示音频流类型的枚举。

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

名称 说明
VOICE_CALL8+ 0 语音电话。
RINGTONE 2 铃声。
MEDIA 3 媒体。
ALARM10+ 4 闹钟。
ACCESSIBILITY10+ 5 无障碍。
VOICE_ASSISTANT8+ 9 语音助手。

InterruptMode9+

表示焦点模型的枚举。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

系统能力: 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 所有设备。

DeviceUsage12+

表示音频设备类型的枚举(根据用途分类)。

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

名称 说明
MEDIA_OUTPUT_DEVICES 1 媒体输出设备。
MEDIA_INPUT_DEVICES 2 媒体输入设备。
ALL_MEDIA_DEVICES 3 所有媒体设备。
CALL_OUTPUT_DEVICES 4 通话输出设备。
CALL_INPUT_DEVICES 8 通话输入设备。
ALL_CALL_DEVICES 12 所有通话设备。

DeviceRole

表示设备角色的枚举。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 说明
INPUT_DEVICE 1 输入设备角色。
OUTPUT_DEVICE 2 输出设备角色。

DeviceType

表示设备类型的枚举。

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

名称 说明
INVALID 0 无效设备。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
EARPIECE 1 听筒。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
SPEAKER 2 扬声器。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
WIRED_HEADSET 3 有线耳机,带麦克风。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
WIRED_HEADPHONES 4 有线耳机,不带麦克风。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
BLUETOOTH_SCO 7 蓝牙设备SCO(Synchronous Connection Oriented)连接。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
BLUETOOTH_A2DP 8 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
MIC 15 麦克风。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
USB_HEADSET 22 USB耳机,带麦克风。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
DISPLAY_PORT12+ 23 DisplayPort(显示接口,简称DP),用于外接扩展设备。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
REMOTE_CAST12+ 24 音频被系统应用投送到其他的远程设备。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
USB_DEVICE18+ 25 USB设备(不包含USB耳机)。
HDMI19+ 27 HDMI设备(例如HDMI、ARC、eARC等)。
LINE_DIGITAL19+ 28 有线数字设备(例如S/PDIF等)。
REMOTE_DAUDIO18+ 29 分布式设备。
原子化服务API: 从API version 18开始,该接口支持在原子化服务中使用。
DEFAULT9+ 1000 默认设备类型。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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 1 单声道。
CHANNEL_2 2 双声道。
CHANNEL_311+ 3 三声道。
CHANNEL_411+ 4 四声道。
CHANNEL_511+ 5 五声道。
CHANNEL_611+ 6 六声道。
CHANNEL_711+ 7 七声道。
CHANNEL_811+ 8 八声道。
CHANNEL_911+ 9 九声道。
CHANNEL_1011+ 10 十声道。
CHANNEL_1211+ 12 十二声道。
CHANNEL_1411+ 14 十四声道。
CHANNEL_1611+ 16 十六声道。

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_8820012+ 88200 采样率为88200。
SAMPLE_RATE_96000 96000 采样率为96000。
SAMPLE_RATE_17640012+ 176400 采样率为176400。
SAMPLE_RATE_19200012+ 192000 采样率为192000。

AudioEncodingType8+

表示音频编码类型的枚举。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 说明
ENCODING_TYPE_INVALID -1 无效。
ENCODING_TYPE_RAW 0 PCM编码。

AudioChannelLayout11+

表示音频文件声道布局类型的枚举。

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

名称 说明
CH_LAYOUT_UNKNOWN 0x0 未知声道布局。
CH_LAYOUT_MONO 0x4 声道布局为MONO。
CH_LAYOUT_STEREO 0x3 声道布局为STEREO。
CH_LAYOUT_STEREO_DOWNMIX 0x60000000 声道布局为STEREO-DOWNMIX。
CH_LAYOUT_2POINT1 0xB 声道布局为2.1。
CH_LAYOUT_3POINT0 0x103 声道布局为3.0。
CH_LAYOUT_SURROUND 0x7 声道布局为SURROUND。
CH_LAYOUT_3POINT1 0xF 声道布局为3.1。
CH_LAYOUT_4POINT0 0x107 声道布局为4.0。
CH_LAYOUT_QUAD 0x33 声道布局为QUAD。
CH_LAYOUT_QUAD_SIDE 0x603 声道布局为QUAD-SIDE。
CH_LAYOUT_2POINT0POINT2 0x3000000003 声道布局为2.0.2。
CH_LAYOUT_AMB_ORDER1_ACN_N3D 0x100000000001 声道排序为ACN_N3D(根据ITU标准)的一阶FOA文件。
CH_LAYOUT_AMB_ORDER1_ACN_SN3D 0x100000001001 声道排序为ACN_SN3D(根据ITU标准)的一阶FOA文件。
CH_LAYOUT_AMB_ORDER1_FUMA 0x100000000101 声道排序为FUMA(根据ITU标准)的一阶FOA文件。
CH_LAYOUT_4POINT1 0x10F 声道布局为4.1
CH_LAYOUT_5POINT0 0x607 声道布局为5.0。
CH_LAYOUT_5POINT0_BACK 0x37 声道布局为5.0-BACK。
CH_LAYOUT_2POINT1POINT2 0x300000000B 声道布局为2.1.2。
CH_LAYOUT_3POINT0POINT2 0x3000000007 声道布局为3.0.2。
CH_LAYOUT_5POINT1 0x60F 声道布局为5.1。
CH_LAYOUT_5POINT1_BACK 0x3F 声道布局为5.1-BACK。
CH_LAYOUT_6POINT0 0x707 声道布局为6.0。
CH_LAYOUT_HEXAGONAL 0x137 声道布局为HEXAGONAL。
CH_LAYOUT_3POINT1POINT2 0x500F 声道布局为3.1.2。
CH_LAYOUT_6POINT0_FRONT 0x6C3 声道布局为6.0-FRONT。
CH_LAYOUT_6POINT1 0x70F 声道布局为6.1。
CH_LAYOUT_6POINT1_BACK 0x13F 声道布局为6.1-BACK。
CH_LAYOUT_6POINT1_FRONT 0x6CB 声道布局为6.1-FRONT。
CH_LAYOUT_7POINT0 0x637 声道布局为7.0。
CH_LAYOUT_7POINT0_FRONT 0x6C7 声道布局为7.0-FRONT。
CH_LAYOUT_7POINT1 0x63F 声道布局为7.1。
CH_LAYOUT_OCTAGONAL 0x737 声道布局为OCTAGONAL。
CH_LAYOUT_5POINT1POINT2 0x300000060F 声道布局为5.1.2。
CH_LAYOUT_7POINT1_WIDE 0x6CF 声道布局为7.1-WIDE。
CH_LAYOUT_7POINT1_WIDE_BACK 0xFF 声道布局为7.1-WIDE-BACK。
CH_LAYOUT_AMB_ORDER2_ACN_N3D 0x100000000002 声道排序为ACN_N3D(根据ITU标准)的二阶HOA文件。
CH_LAYOUT_AMB_ORDER2_ACN_SN3D 0x100000001002 声道排序为ACN_SN3D(根据ITU标准)的二阶HOA文件。
CH_LAYOUT_AMB_ORDER2_FUMA 0x100000000102 声道排序为FUMA(根据ITU标准)的二阶HOA文件。
CH_LAYOUT_5POINT1POINT4 0x2D60F 声道布局为5.1.4。
CH_LAYOUT_7POINT1POINT2 0x300000063F 声道布局为7.1.2。
CH_LAYOUT_7POINT1POINT4 0x2D63F 声道布局为7.1.4。
CH_LAYOUT_10POINT2 0x180005737 声道布局为10.2。
CH_LAYOUT_9POINT1POINT4 0x18002D63F 声道布局为9.1.4。
CH_LAYOUT_9POINT1POINT6 0x318002D63F 声道布局为9.1.6。
CH_LAYOUT_HEXADECAGONAL 0x18003F737 声道布局为HEXADECAGONAL。
CH_LAYOUT_AMB_ORDER3_ACN_N3D 0x100000000003 声道排序为ACN_N3D(根据ITU标准)的三阶HOA文件。
CH_LAYOUT_AMB_ORDER3_ACN_SN3D 0x100000001003 声道排序为ACN_SN3D(根据ITU标准)的三阶HOA文件。
CH_LAYOUT_AMB_ORDER3_FUMA 0x100000000103 声道排序为FUMA(根据ITU标准)的三阶HOA文件。

ContentType(deprecated)

表示音频内容类型的枚举。

说明: 从API version 7开始支持,从API version 10开始废弃,建议使用StreamUsage替代。

系统能力: 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 未知类型。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_MEDIA(deprecated) 1 媒体。
从API version 7开始支持,从API version 10开始废弃,建议使用该枚举中的STREAM_USAGE_MUSIC、STREAM_USAGE_MOVIE、STREAM_USAGE_GAME或STREAM_USAGE_AUDIOBOOK替代。
STREAM_USAGE_MUSIC10+ 1 音乐。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_VOICE_COMMUNICATION 2 VoIP语音通话。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_VOICE_ASSISTANT9+ 3 语音播报。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_ALARM10+ 4 闹钟。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_VOICE_MESSAGE10+ 5 语音消息。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_NOTIFICATION_RINGTONE(deprecated) 6 通知铃声。
从API version 7开始支持,从API version 10开始废弃,建议使用该枚举中的STREAM_USAGE_RINGTONE替代。
STREAM_USAGE_RINGTONE10+ 6 铃声。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_NOTIFICATION10+ 7 通知音。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_ACCESSIBILITY10+ 8 无障碍。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_MOVIE10+ 10 电影或视频。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_GAME10+ 11 游戏。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_AUDIOBOOK10+ 12 有声读物(包括听书、相声、评书)、听新闻、播客等。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_NAVIGATION10+ 13 导航。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
STREAM_USAGE_VIDEO_COMMUNICATION12+ 17 VoIP视频通话。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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 暂停状态。

AudioEffectMode10+

表示音效模式的枚举。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 说明
EFFECT_NONE 0 关闭音效。
EFFECT_DEFAULT 1 默认音效。

AudioRendererRate8+

表示音频渲染速度的枚举。

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

名称 说明
RENDER_RATE_NORMAL 0 正常速度。
RENDER_RATE_DOUBLE 1 2倍速。
RENDER_RATE_HALF 2 0.5倍速。

InterruptType

表示中断类型的枚举。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 说明
INTERRUPT_TYPE_BEGIN 1 音频播放中断事件开始。
INTERRUPT_TYPE_END 2 音频播放中断事件结束。

InterruptForceType9+

表示音频打断类型的枚举。

当用户监听到音频中断(即收到InterruptEvent事件)时,获取此信息。

此类型表示音频打断是否已由系统强制执行,具体操作信息(如音频暂停、停止等)可通过InterruptHint获取。关于音频打断策略的详细说明可参考文档音频焦点和音频会话介绍

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 说明
INTERRUPT_FORCE 0 强制打断类型,即具体操作已由系统强制执行。
INTERRUPT_SHARE 1 共享打断类型,即系统不执行具体操作,通过InterruptHint建议并提示应用操作,应用可自行决策下一步处理方式。

InterruptHint

表示中断提示的枚举。

当用户监听到音频中断事件(即收到InterruptEvent事件)时,获取此信息。

此类型表示根据焦点策略,对音频流执行的具体操作(如暂停、调整音量等)。

可以结合InterruptEvent中的InterruptForceType信息,判断该操作是否已由系统强制执行。详情请参阅文档音频焦点和音频会话介绍

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 说明
INTERRUPT_HINT_NONE8+ 0 无提示。
INTERRUPT_HINT_RESUME 1 提示音频恢复,应用可主动触发开始渲染或开始采集的相关操作。
此操作无法由系统强制执行,其对应的InterruptForceType一定为INTERRUPT_SHARE类型。
INTERRUPT_HINT_PAUSE 2 提示音频暂停,暂时失去音频焦点。
待焦点可用时,会收到INTERRUPT_HINT_RESUME事件。
INTERRUPT_HINT_STOP 3 提示音频停止,彻底失去音频焦点。
INTERRUPT_HINT_DUCK 4 提示音频躲避开始,降低音量播放。
INTERRUPT_HINT_UNDUCK8+ 5 提示音频躲避结束,恢复音量播放。

AudioVolumeMode19+

表示音量模式的枚举。

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

名称 说明
SYSTEM_GLOBAL 0 系统级音量(默认模式)。
APP_INDIVIDUAL 1 应用级音量。

AudioStreamInfo8+

音频流信息。

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

名称 类型 必填 说明
samplingRate AudioSamplingRate 音频文件的采样率。
channels AudioChannel 音频文件的通道数。
sampleFormat AudioSampleFormat 音频采样格式。
encodingType AudioEncodingType 音频编码格式。
channelLayout11+ AudioChannelLayout 音频声道布局,默认值为0x0。

AudioRendererInfo8+

音频渲染器信息。

名称 类型 必填 说明
content ContentType 音频内容类型。
系统能力: SystemCapability.Multimedia.Audio.Core
API version 8、9为必填参数,从API version 10开始为可选参数,默认值为CONTENT_TYPE_UNKNOWN。
从API version 7开始支持,从API version 10开始废弃,建议使用StreamUsage替代。
usage StreamUsage 音频流使用类型。
系统能力: SystemCapability.Multimedia.Audio.Core
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
rendererFlags number 音频渲染器标志。
0代表音频渲染器。
系统能力: SystemCapability.Multimedia.Audio.Core
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
volumeMode19+ AudioVolumeMode 音频的音量模式。默认值为SYSTEM_GLOBAL。
系统能力: SystemCapability.Multimedia.Audio.Volume

AudioRendererOptions8+

音频渲染器选项信息。

名称 类型 必填 说明
streamInfo AudioStreamInfo 音频流信息。
系统能力: SystemCapability.Multimedia.Audio.Renderer
rendererInfo AudioRendererInfo 音频渲染器信息。
系统能力: SystemCapability.Multimedia.Audio.Renderer
privacyType10+ AudioPrivacyType 表示音频流是否可以被其他应用录制,默认值为0。
系统能力: SystemCapability.Multimedia.Audio.PlaybackCapture

AudioPrivacyType10+

表示对应播放音频流是否支持被其他应用录制的枚举。

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

名称 说明
PRIVACY_TYPE_PUBLIC 0 表示音频流可以被其他应用录制。
PRIVACY_TYPE_PRIVATE 1 表示音频流不可以被其他应用录制。

InterruptEvent9+

音频中断时,应用接收的中断事件。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 类型 必填 说明
eventType InterruptType 音频中断事件类型,开始或是结束。
forceType InterruptForceType 操作是由系统强制执行或是由应用程序执行。
hintType InterruptHint 中断提示,用于提供中断事件的相关信息。

VolumeEvent9+

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

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

名称 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volume number 音量等级,可设置范围通过调用getMinVolume和getMaxVolume方法获取。
updateUi boolean 是否在UI中显示音量变化。true表示显示,false表示不显示。
volumeMode19+ AudioVolumeMode 音频的音量模式。默认值为SYSTEM_GLOBAL。

MicStateChangeEvent9+

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

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

名称 类型 必填 说明
mute boolean 系统麦克风是否为静音状态。true表示静音,false表示非静音。

DeviceChangeAction

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

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

名称 类型 必填 说明
type DeviceChangeType 设备连接状态变化。
deviceDescriptors AudioDeviceDescriptors 设备信息。

DeviceBlockStatusInfo13+

描述音频设备被堵塞状态和设备信息。

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

名称 类型 必填 说明
blockStatus DeviceBlockStatus 音频设备堵塞状态。
devices AudioDeviceDescriptors 设备信息。

ChannelBlendMode11+

表示声道混合模式类型的枚举。

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

名称 说明
MODE_DEFAULT 0 无声道混合。
MODE_BLEND_LR 1 混合左右声道。
MODE_ALL_LEFT 2 从左声道覆盖到右声道混合。
MODE_ALL_RIGHT 3 从右声道覆盖到左声道混合。

AudioStreamDeviceChangeReason11+

表示流设备变更原因的枚举。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 说明
REASON_UNKNOWN 0 未知原因。
REASON_NEW_DEVICE_AVAILABLE 1 新设备可用。
REASON_OLD_DEVICE_UNAVAILABLE 2 旧设备不可用。报告此原因时,应考虑暂停音频播放。
REASON_OVERRODE 3 强选。

AudioStreamDeviceChangeInfo11+

流设备变更时,应用接收到的事件。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

名称 类型 必填 说明
devices AudioDeviceDescriptors 设备信息。
changeReason AudioStreamDeviceChangeReason 流设备变更原因。

DeviceChangeType

表示设备连接状态变化的枚举。

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

名称 说明
CONNECT 0 设备连接。
DISCONNECT 1 断开设备连接。

DeviceBlockStatus13+

表示音频设备是否被堵塞的枚举。

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

名称 说明
UNBLOCKED 0 音频设备正常。
BLOCKED 1 音频设备被堵塞。

AudioCapturerOptions8+

音频采集器选项信息。

名称 类型 必填 说明
streamInfo AudioStreamInfo 音频流信息。
系统能力: SystemCapability.Multimedia.Audio.Capturer
capturerInfo AudioCapturerInfo 音频采集器信息。
系统能力: SystemCapability.Multimedia.Audio.Capturer
playbackCaptureConfig(deprecated) AudioPlaybackCaptureConfig 音频内录的配置信息。
系统能力: SystemCapability.Multimedia.Audio.PlaybackCapture。
从API version 10开始支持,从API version 12开始废弃,建议使用录屏接口AVScreenCapture替代。

AudioCapturerInfo8+

描述音频采集器信息。

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

名称 类型 必填 说明
source SourceType 音源类型。
capturerFlags number 音频采集器标志。
0代表音频采集器。

SourceType8+

表示音源类型的枚举。

名称 说明
SOURCE_TYPE_INVALID -1 无效的音频源。
系统能力: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_MIC 0 Mic音频源。
系统能力: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_VOICE_RECOGNITION9+ 1 语音识别源。
系统能力: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_PLAYBACK_CAPTURE(deprecated) 2 播放音频流(内录)录制音频源。
系统能力: SystemCapability.Multimedia.Audio.PlaybackCapture。
从API version 10开始支持,从API version 12开始废弃,建议使用录屏接口AVScreenCapture替代。
SOURCE_TYPE_VOICE_COMMUNICATION 7 语音通话场景的音频源。
系统能力: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_VOICE_MESSAGE12+ 10 短语音消息的音频源。
系统能力: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_CAMCORDER13+ 13 录像的音频源。
系统能力: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_UNPROCESSED14+ 14 麦克风纯净录音的音频源(系统不做任何算法处理)。
系统能力: SystemCapability.Multimedia.Audio.Core

AudioPlaybackCaptureConfig(deprecated)

音频内录的配置信息。

说明: 从API version 10开始支持,从API version 12开始废弃,建议使用录屏接口AVScreenCapture替代。

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

名称 类型 必填 说明
filterOptions CaptureFilterOptions 需要录制的播放音频流的筛选信息。

CaptureFilterOptions(deprecated)

待录制的播放音频流的筛选信息。

说明: 从API version 10开始支持,从API version 12开始废弃,建议使用录屏接口AVScreenCapture替代。

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

名称 类型 必填 说明
usages Array<StreamUsage> 指定需要录制的音频播放流的StreamUsage类型。可同时指定0个或多个StreamUsage。Array为空时,默认录制StreamUsage为STREAM_USAGE_MUSIC、STREAM_USAGE_MOVIE、STREAM_USAGE_GAME和STREAM_USAGE_AUDIOBOOK的音频播放流。
在API version 10时,CaptureFilterOptions支持使用StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,使用时需要申请权限ohos.permission.CAPTURE_VOICE_DOWNLINK_AUDIO,该权限仅系统应用可申请。
从API version 11开始,CaptureFilterOptions不再支持使用StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,所以当前接口不再涉及此权限。

AudioScene8+

表示音频场景的枚举。

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

名称 说明
AUDIO_SCENE_DEFAULT 0 默认音频场景。
AUDIO_SCENE_RINGING12+ 1 响铃模式。
AUDIO_SCENE_PHONE_CALL12+ 2 电话模式。
AUDIO_SCENE_VOICE_CHAT 3 语音聊天模式。

AudioConcurrencyMode12+

表示音频并发模式的枚举。

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

名称 说明
CONCURRENCY_DEFAULT 0 默认使用系统策略。
CONCURRENCY_MIX_WITH_OTHERS 1 和其他音频并发。
CONCURRENCY_DUCK_OTHERS 2 压低其他音频的音量。
CONCURRENCY_PAUSE_OTHERS 3 暂停其他音频。

AudioSessionDeactivatedReason12+

表示音频会话停用原因的枚举。

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

名称 说明
DEACTIVATED_LOWER_PRIORITY 0 应用焦点被抢占。
DEACTIVATED_TIMEOUT 1 音频会话等待超时。

AudioSessionStrategy12+

音频会话策略。

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

名称 类型 必填 说明
concurrencyMode AudioConcurrencyMode 音频并发模式。

AudioSessionDeactivatedEvent12+

音频会话停用事件。

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

名称 类型 必填 说明
reason AudioSessionDeactivatedReason 音频会话停用原因。

AudioManager

管理音频音量和设备。

在使用AudioManager的接口之前,需先通过getAudioManager获取AudioManager实例。

setAudioParameter(deprecated)

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

音频参数设置。使用callback异步回调。

接口根据硬件设备的支持能力扩展音频配置。支持的参数与产品和设备强相关,非通用参数,示例代码内使用样例参数。

说明: 从API version 7开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。

需要权限: ohos.permission.MODIFY_AUDIO_SETTINGS

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

参数:

参数名 类型 必填 说明
key string 被设置的音频参数的键。
value string 被设置的音频参数的值。
callback AsyncCallback<void> 回调函数。当音频参数设置成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.setAudioParameter('key_example', 'value_example', (err: BusinessError) => {
  if (err) {
    console.error(`Failed to set the audio parameter. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate a successful setting of the audio parameter.');
});

setAudioParameter(deprecated)

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

音频参数设置。使用Promise异步回调。

接口根据硬件设备的支持能力扩展音频配置。支持的参数与产品和设备强相关,非通用参数,示例代码内使用样例参数。

说明: 从API version 7开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。

需要权限: ohos.permission.MODIFY_AUDIO_SETTINGS

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

参数:

参数名 类型 必填 说明
key string 被设置的音频参数的键。
value string 被设置的音频参数的值。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

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

getAudioParameter(deprecated)

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

获取指定音频参数值。使用callback异步回调。

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

说明: 从API version 7开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。

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

参数:

参数名 类型 必填 说明
key string 待获取的音频参数的键。
callback AsyncCallback<string> 回调函数。当获取指定音频参数值成功,err为undefined,data为获取到的指定音频参数值;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.getAudioParameter('key_example', (err: BusinessError, value: string) => {
  if (err) {
    console.error(`Failed to obtain the value of the audio parameter. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`);
});

getAudioParameter(deprecated)

getAudioParameter(key: string): Promise<string>

获取指定音频参数值。使用Promise异步回调。

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

说明: 从API version 7开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。

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

参数:

参数名 类型 必填 说明
key string 待获取的音频参数的键。

返回值:

类型 说明
Promise<string> Promise对象,返回获取的音频参数值。

示例:

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

getAudioScene8+

getAudioScene(callback: AsyncCallback<AudioScene>): void

获取音频场景模式。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioScene> 回调函数。当获取音频场景模式成功,err为undefined,data为获取到的音频场景模式;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.getAudioScene((err: BusinessError, value: audio.AudioScene) => {
  if (err) {
    console.error(`Failed to obtain the audio scene mode. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`);
});

getAudioScene8+

getAudioScene(): Promise<AudioScene>

获取音频场景模式。使用Promise异步回调。

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

返回值:

类型 说明
Promise<AudioScene> Promise对象,返回音频场景模式。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

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

getAudioSceneSync10+

getAudioSceneSync(): AudioScene

获取音频场景模式。同步返回结果。

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

返回值:

类型 说明
AudioScene 音频场景模式。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: audio.AudioScene = audioManager.getAudioSceneSync();
  console.info(`indicate that the audio scene mode is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the audio scene mode ${error}`);
}

getVolumeManager9+

getVolumeManager(): AudioVolumeManager

获取音频音量管理器。

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

返回值:

类型 说明
AudioVolumeManager AudioVolumeManager实例。

示例:

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

let audioVolumeManager: audio.AudioVolumeManager = audioManager.getVolumeManager();

getStreamManager9+

getStreamManager(): AudioStreamManager

获取音频流管理器。

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

返回值:

类型 说明
AudioStreamManager AudioStreamManager实例。

示例:

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

let audioStreamManager: audio.AudioStreamManager = audioManager.getStreamManager();

getRoutingManager9+

getRoutingManager(): AudioRoutingManager

获取音频路由管理器。

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

返回值:

类型 说明
AudioRoutingManager AudioRoutingManager实例。

示例:

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

let audioRoutingManager: audio.AudioRoutingManager = audioManager.getRoutingManager();

getSessionManager12+

getSessionManager(): AudioSessionManager

获取音频会话管理器。

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

返回值:

类型 说明
AudioSessionManager AudioSessionManager实例。

示例:

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

let audioSessionManager: audio.AudioSessionManager = audioManager.getSessionManager();

getSpatializationManager18+

getSpatializationManager(): AudioSpatializationManager

获取空间音频管理器。

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

返回值:

类型 说明
AudioSpatializationManager AudioSpatializationManager实例。

示例:

import { audio } from '@kit.AudioKit';
let audioSpatializationManager: audio.AudioSpatializationManager = audioManager.getSpatializationManager();

setVolume(deprecated)

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

设置指定流的音量。使用callback异步回调。

说明:

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

应用无法直接调节系统音量,建议通过系统音量面板组件调节音量。具体样例和介绍请查看AVVolumePanel参考文档

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volume number 音量等级,可设置范围通过getMinVolumegetMaxVolume获取。
callback AsyncCallback<void> 回调函数。当设置指定流的音量成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to set the volume. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate a successful volume setting.');
});

setVolume(deprecated)

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

设置指定流的音量。使用Promise异步回调。

说明:

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

应用无法直接调节系统音量,建议通过系统音量面板组件调节音量。具体样例和介绍请查看AVVolumePanel参考文档

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volume number 音量等级,可设置范围通过getMinVolumegetMaxVolume获取。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

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

getVolume(deprecated)

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

获取指定流的音量。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getVolume替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调函数。当获取指定流的音量成功,err为undefined,data为获取到的指定流的音量;否则为错误对象。指定流的音量等级范围可通过getMinVolumegetMaxVolume获取。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the volume. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the volume is obtained.');
});

getVolume(deprecated)

getVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的音量。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getVolume替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<number> Promise对象,返回指定流的音量。指定流的音量等级范围可通过getMinVolumegetMaxVolume获取。

示例:

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

getMinVolume(deprecated)

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

获取指定流的最小音量。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getMinVolume替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调函数。当获取指定流的最小音量成功,err为undefined,data为获取到的指定流的最小音量;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the minimum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
});

getMinVolume(deprecated)

getMinVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的最小音量。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getMinVolume替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<number> Promise对象,返回最小音量。

示例:

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

getMaxVolume(deprecated)

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

获取指定流的最大音量。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getMaxVolume替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调函数。当获取指定流的最大音量成功,err为undefined,data为获取到的指定流的最大音量;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the maximum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
});

getMaxVolume(deprecated)

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的最大音量。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getMaxVolume替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<number> Promise对象,返回最大音量。

示例:

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

mute(deprecated)

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

设置指定音量流静音。使用callback异步回调。

当该音量流可设置的最小音量不能为0时,不支持静音操作。例如:闹钟和通话。

说明: 从API version 7开始支持,从API version 9开始废弃,替代接口仅面向系统应用开放。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
mute boolean 是否设置指定音量流为静音状态。true表示静音,false表示非静音。
callback AsyncCallback<void> 回调函数。当设置指定音量流静音成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to mute the stream. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the stream is muted.');
});

mute(deprecated)

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

设置指定音量流静音。使用Promise异步回调。

当该音量流可设置的最小音量不能为0时,不支持静音操作。例如:闹钟和通话。

说明: 从API version 7开始支持,从API version 9开始废弃,替代接口仅面向系统应用开放。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
mute boolean 是否设置指定音量流为静音状态。true表示静音,false表示非静音。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

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

isMute(deprecated)

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

获取指定音量流的静音状态。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用isMute替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<boolean> 回调函数。当获取指定音量流的静音状态成功,err为undefined,data为true表示静音,false表示非静音;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the mute status. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
});

isMute(deprecated)

isMute(volumeType: AudioVolumeType): Promise<boolean>

获取指定音量流的静音状态。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用isMute替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示静音;返回false表示非静音。

示例:

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

isActive(deprecated)

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

获取指定音量流的活跃状态。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用isActive替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<boolean> 回调函数。当获取指定音量流的活跃状态成功,err为undefined,data为true表示活跃,false表示不活跃;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the active status of the stream. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
});

isActive(deprecated)

isActive(volumeType: AudioVolumeType): Promise<boolean>

获取指定音量流的活跃状态。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用isActive替代。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示流状态为活跃;返回false表示流状态不活跃。

示例:

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

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> 回调函数。当设置铃声模式成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to set the ringer mode. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate a successful setting of the ringer mode.');
});

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对象。无返回结果的Promise对象。

示例:

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

getRingerMode(deprecated)

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

获取铃声模式。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getRingerMode替代。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRingMode> 回调函数。当获取铃声模式成功,err为undefined,data为获取到的铃声模式;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => {
  if (err) {
    console.error(`Failed to obtain the ringer mode. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
});

getRingerMode(deprecated)

getRingerMode(): Promise<AudioRingMode>

获取铃声模式。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getRingerMode替代。

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

返回值:

类型 说明
Promise<AudioRingMode> Promise对象,返回系统的铃声模式。

示例:

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

getDevices(deprecated)

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

获取音频设备列表。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getDevices替代。

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 音频设备类型。
callback AsyncCallback<AudioDeviceDescriptors> 回调函数。当获取音频设备列表成功,err为undefined,data为获取到的音频设备列表;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => {
  if (err) {
    console.error(`Failed to obtain the device list. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device list is obtained.');
});

getDevices(deprecated)

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

获取音频设备列表。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用getDevices替代。

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 音频设备类型。

返回值:

类型 说明
Promise<AudioDeviceDescriptors> Promise对象,返回设备列表。

示例:

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

setDeviceActive(deprecated)

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

设置设备激活状态。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用setCommunicationDevice替代。

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

参数:

参数名 类型 必填 说明
deviceType ActiveDeviceType 活跃音频设备类型。
active boolean 是否设置设备为激活状态。true表示已激活,false表示未激活。
callback AsyncCallback<void> 回调函数。当设置设备激活状态成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

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

setDeviceActive(deprecated)

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

设置设备激活状态。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用setCommunicationDevice替代。

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

参数:

参数名 类型 必填 说明
deviceType ActiveDeviceType 活跃音频设备类型。
active boolean 是否设置设备为激活状态。true表示已激活,false表示未激活。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

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

isDeviceActive(deprecated)

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

获取指定设备的激活状态。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用isCommunicationDeviceActive替代。

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

参数:

参数名 类型 必填 说明
deviceType ActiveDeviceType 活跃音频设备类型。
callback AsyncCallback<boolean> 回调函数。当获取指定设备的激活状态成功,err为undefined,data为true表示激活,false表示未激活;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the active status of the device. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the active status of the device is obtained.');
});

isDeviceActive(deprecated)

isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>

获取指定设备的激活状态。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用isCommunicationDeviceActive替代。

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

参数:

参数名 类型 必填 说明
deviceType ActiveDeviceType 活跃音频设备类型。

返回值:

Type Description
Promise<boolean> Promise对象。返回true表示设备已激活;返回false表示设备未激活。

示例:

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

setMicrophoneMute(deprecated)

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

设置麦克风静音状态。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,替代接口仅面向系统应用开放。

需要权限: ohos.permission.MICROPHONE

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

参数:

参数名 类型 必填 说明
mute boolean 是否设置麦克风为静音状态。true表示静音,false表示非静音。
callback AsyncCallback<void> 回调函数。当设置麦克风静音状态成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.setMicrophoneMute(true, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to mute the microphone. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the microphone is muted.');
});

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean): Promise<void>

设置麦克风静音状态。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,替代接口仅面向系统应用开放。

需要权限: ohos.permission.MICROPHONE

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

参数:

参数名 类型 必填 说明
mute boolean 是否设置麦克风为静音状态。true表示静音,false表示非静音。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

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

isMicrophoneMute(deprecated)

isMicrophoneMute(callback: AsyncCallback<boolean>): void

获取麦克风静音状态。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用isMicrophoneMute替代。

需要权限: ohos.permission.MICROPHONE

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<boolean> 回调函数。当获取麦克风静音状态成功,err为undefined,data为true表示静音,false表示非静音;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioManager.isMicrophoneMute((err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
});

isMicrophoneMute(deprecated)

isMicrophoneMute(): Promise<boolean>

获取麦克风静音状态。使用Promise异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用isMicrophoneMute替代。

需要权限: ohos.permission.MICROPHONE

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

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示麦克风被静音;返回false表示麦克风未被静音。

示例:

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

on('deviceChange')(deprecated)

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

监听音频设备连接变化事件(当音频设备连接状态发生变化时触发)。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用on('deviceChange')替代。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'deviceChange',当音频设备连接状态发生变化时,触发该事件。
callback Callback<DeviceChangeAction> 回调函数,返回设备更新详情。

示例:

audioManager.on('deviceChange', (deviceChanged: audio.DeviceChangeAction) => {
  console.info(`device change type : ${deviceChanged.type} `);
  console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
});

off('deviceChange')(deprecated)

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

取消监听音频设备连接变化事件。使用callback异步回调。

说明: 从API version 7开始支持,从API version 9开始废弃,建议使用off('deviceChange')替代。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'deviceChange',当取消监听音频设备连接变化事件时,触发该事件。
callback Callback<DeviceChangeAction> 回调函数,返回设备更新详情。

示例:

// 取消该事件的所有监听。
audioManager.off('deviceChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let deviceChangeCallback = (deviceChanged: audio.DeviceChangeAction) => {
  console.info(`device change type : ${deviceChanged.type} `);
  console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
};

audioManager.on('deviceChange', deviceChangeCallback);

audioManager.off('deviceChange', deviceChangeCallback);

on('interrupt')(deprecated)

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

监听音频打断事件(当音频焦点发生变化时触发)。使用callback异步回调。

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

说明: 从API version 7开始支持,从API version 11开始废弃,建议使用on('audioInterrupt')替代。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'interrupt',当音频焦点状态发生变化时,触发该事件。
interrupt AudioInterrupt 音频打断事件类型的参数。
callback Callback<InterruptAction> 回调函数,返回打断事件信息。

示例:

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

let interAudioInterrupt: audio.AudioInterrupt = {
  streamUsage:2,
  contentType:0,
  pauseWhenDucked:true
};

audioManager.on('interrupt', interAudioInterrupt, (interruptAction: audio.InterruptAction) => {
  if (interruptAction.actionType === 0) {
    console.info('An event to gain the audio focus starts.');
    console.info(`Focus gain event: ${interruptAction} `);
  }
  if (interruptAction.actionType === 1) {
    console.info('An audio interruption event starts.');
    console.info(`Audio interruption event: ${interruptAction} `);
  }
});

off('interrupt')(deprecated)

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

取消监听音频打断事件。使用callback异步回调。

说明: 从API version 7开始支持,从API version 11开始废弃,建议使用off('audioInterrupt')替代。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'interrupt',当取消监听音频打断事件时,触发该事件。
interrupt AudioInterrupt 音频打断事件类型的参数。
callback Callback<InterruptAction> 回调函数,返回打断事件信息。

示例:

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

let interAudioInterrupt: audio.AudioInterrupt = {
  streamUsage:2,
  contentType:0,
  pauseWhenDucked:true
};

// 取消该事件的所有监听。
audioManager.off('interrupt', interAudioInterrupt);

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let interruptCallback = (interruptAction: audio.InterruptAction) => {
  if (interruptAction.actionType === 0) {
    console.info('An event to gain the audio focus starts.');
    console.info(`Focus gain event: ${interruptAction} `);
  }
  if (interruptAction.actionType === 1) {
    console.info('An audio interruption event starts.');
    console.info(`Audio interruption event: ${interruptAction} `);
  }
};

audioManager.on('interrupt', interAudioInterrupt, interruptCallback);

audioManager.off('interrupt', interAudioInterrupt, interruptCallback);

AudioVolumeManager9+

音量管理。

在使用AudioVolumeManager的接口之前,需先通过getVolumeManager获取AudioVolumeManager实例。

getVolumeGroupManager9+

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

获取音频组管理器。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
groupId number 音量组id,默认使用DEFAULT_VOLUME_GROUP_ID。
callback AsyncCallback<AudioVolumeGroupManager> 回调函数。当获取音频组管理器成功,err为undefined,data为获取到的音频组管理器对象;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID;

audioVolumeManager.getVolumeGroupManager(groupId, (err: BusinessError, value: audio.AudioVolumeGroupManager) => {
  if (err) {
    console.error(`Failed to obtain the volume group infos list. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
});

getVolumeGroupManager9+

getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>

获取音频组管理器。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
groupId number 音量组id,默认使用DEFAULT_VOLUME_GROUP_ID。

返回值:

类型 说明
Promise< AudioVolumeGroupManager > Promise对象,返回音量组实例。

示例:

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

let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID;
let audioVolumeGroupManager: audio.AudioVolumeGroupManager | undefined = undefined;

async function getVolumeGroupManager(){
  audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupId);
  console.info('Promise returned to indicate that the volume group infos list is obtained.');
}

getVolumeGroupManagerSync10+

getVolumeGroupManagerSync(groupId: number): AudioVolumeGroupManager

获取音频组管理器。同步返回结果。

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

参数:

参数名 类型 必填 说明
groupId number 音量组id,默认使用DEFAULT_VOLUME_GROUP_ID。

返回值:

类型 说明
AudioVolumeGroupManager 音量组实例。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioVolumeGroupManager: audio.AudioVolumeGroupManager = audioVolumeManager.getVolumeGroupManagerSync(audio.DEFAULT_VOLUME_GROUP_ID);
  console.info(`Get audioVolumeGroupManager success.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to get audioVolumeGroupManager, error: ${error}`);
}

getAppVolumePercentage19+

getAppVolumePercentage(): Promise<number>

获取应用的音量(范围为0到100)。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回应用的音量。

示例:

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

audioVolumeManager.getAppVolumePercentage().then((value: number) => {
  console.info(`app volume is ${value}.`);
});

setAppVolumePercentage19+

setAppVolumePercentage(volume: number): Promise<void>

设置应用的音量(范围为0到100)。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
volume number 要设置的音量值。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.
6800301 Crash or blocking occurs in system process.

示例:

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

audioVolumeManager.setAppVolumePercentage(20).then(() => {
  console.info(`set app volume success.`);
});

on('volumeChange')9+

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

监听系统音量变化事件(当系统音量发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'volumeChange',当系统音量发生变化时,触发该事件。
callback Callback<VolumeEvent> 回调函数,返回变化后的音量信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

off('volumeChange')12+

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

取消监听系统音量变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'volumeChange',当取消监听系统音量变化事件时,触发该事件。
callback Callback<VolumeEvent> 回调函数,返回变化后的音量信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters missing; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioVolumeManager.off('volumeChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let volumeChangeCallback = (volumeEvent: audio.VolumeEvent) => {
  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
  console.info(`Volume level: ${volumeEvent.volume} `);
  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
};

audioVolumeManager.on('volumeChange', volumeChangeCallback);

audioVolumeManager.off('volumeChange', volumeChangeCallback);

on('appVolumeChange')19+

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

监听当前应用应用级音量变化事件(当应用级音量发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'appVolumeChange',当应用级音量发生变化时,触发该事件。
callback Callback<VolumeEvent> 回调函数,返回变化后的音量信息。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

audioVolumeManager.on('appVolumeChange', (volumeEvent: audio.VolumeEvent) => {
  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
  console.info(`Volume level: ${volumeEvent.volume} `);
  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
});

off('appVolumeChange')19+

off(type: 'appVolumeChange', callback?: Callback<VolumeEvent>): void

取消监听当前应用应用级音量变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'appVolumeChange',当取消监听当前应用应用级音量变化事件时,触发该事件。
callback Callback<VolumeEvent> 回调函数,返回变化后的音量信息。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioVolumeManager.off('appVolumeChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let appVolumeChangeCallback = (volumeEvent: audio.VolumeEvent) => {
  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
  console.info(`Volume level: ${volumeEvent.volume} `);
  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
};

audioVolumeManager.on('appVolumeChange', appVolumeChangeCallback);

audioVolumeManager.off('appVolumeChange', appVolumeChangeCallback);

AudioVolumeGroupManager9+

管理音频组音量。

在使用AudioVolumeGroupManager的接口之前,需先通过getVolumeGroupManager获取AudioVolumeGroupManager实例。

getVolume9+

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

获取指定流的音量。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调函数。当获取指定流的音量成功,err为undefined,data为获取到的指定流的音量;否则为错误对象。指定流的音量等级范围可通过getMinVolumegetMaxVolume获取。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the volume. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the volume is obtained.');
});

getVolume9+

getVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的音量。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<number> Promise对象,返回指定流的音量。指定流的音量等级范围可通过getMinVolumegetMaxVolume获取。

示例:

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

getVolumeSync10+

getVolumeSync(volumeType: AudioVolumeType): number

获取指定流的音量。同步返回结果。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
number 返回指定流的音量。指定流的音量等级范围可通过getMinVolumegetMaxVolume获取。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioVolumeGroupManager.getVolumeSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the volume is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the volume, error ${error}.`);
}

getMinVolume9+

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

获取指定流的最小音量。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调函数。当获取指定流的最小音量成功,err为undefined,data为获取到的指定流的最小音量;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the minimum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
});

getMinVolume9+

getMinVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的最小音量。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<number> Promise对象,返回最小音量。

示例:

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

getMinVolumeSync10+

getMinVolumeSync(volumeType: AudioVolumeType): number

获取指定流的最小音量。同步返回结果。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
number 返回最小音量。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioVolumeGroupManager.getMinVolumeSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the minimum volume is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the minimum volume, error ${error}.`);
}

getMaxVolume9+

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

获取指定流的最大音量。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调函数。当获取指定流的最大音量成功,err为undefined,data为获取到的指定流的最大音量;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the maximum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
});

getMaxVolume9+

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

获取指定流的最大音量。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<number> Promise对象,返回最大音量大小。

示例:

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

getMaxVolumeSync10+

getMaxVolumeSync(volumeType: AudioVolumeType): number

获取指定流的最大音量。同步返回结果。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
number 返回最大音量大小。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioVolumeGroupManager.getMaxVolumeSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the maximum volume is obtained. ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the maximum volume, error ${error}.`);
}

isMute9+

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

获取指定音量流静音状态。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<boolean> 回调函数。当获取指定音量流静音状态成功,err为undefined,data为true表示静音,false表示非静音;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the mute status. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
});

isMute9+

isMute(volumeType: AudioVolumeType): Promise<boolean>

获取指定音量流是否被静音。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示静音;返回false表示非静音。

示例:

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

isMuteSync10+

isMuteSync(volumeType: AudioVolumeType): boolean

获取指定音量流是否被静音。同步返回结果。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。

返回值:

类型 说明
boolean 流静音状态。返回true表示静音,返回false表示非静音。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: boolean = audioVolumeGroupManager.isMuteSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the mute status of the stream is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the mute status of the stream, error ${error}.`);
}

getRingerMode9+

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

获取铃声模式。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRingMode> 回调函数。当获取铃声模式成功,err为undefined,data为获取到的铃声模式;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => {
  if (err) {
    console.error(`Failed to obtain the ringer mode. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
});

getRingerMode9+

getRingerMode(): Promise<AudioRingMode>

获取铃声模式。使用Promise异步回调。

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

返回值:

类型 说明
Promise<AudioRingMode> Promise对象,返回系统的铃声模式。

示例:

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

getRingerModeSync10+

getRingerModeSync(): AudioRingMode

获取铃声模式。同步返回结果。

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

返回值:

类型 说明
AudioRingMode 返回系统的铃声模式。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: audio.AudioRingMode = audioVolumeGroupManager.getRingerModeSync();
  console.info(`Indicate that the ringer mode is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the ringer mode, error ${error}.`);
}

on('ringerModeChange')9+

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

监听铃声模式变化事件(当铃声模式发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'ringerModeChange',当铃声模式发生变化时,触发该事件。
callback Callback<AudioRingMode> 回调函数,返回变化后的铃音模式。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

off('ringerModeChange')18+

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

取消监听铃声模式变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'ringerModeChange',当取消监听铃声模式变化事件时,触发该事件。
callback Callback<AudioRingMode> 回调函数,返回变化后的铃音模式。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioVolumeGroupManager.off('ringerModeChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let ringerModeChangeCallback = (ringerMode: audio.AudioRingMode) => {
  console.info(`Updated ringermode: ${ringerMode}`);
};

audioVolumeGroupManager.on('ringerModeChange', ringerModeChangeCallback);

audioVolumeGroupManager.off('ringerModeChange', ringerModeChangeCallback);

setMicrophoneMute(deprecated)

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

设置麦克风静音状态。使用callback异步回调。

说明:

从API version 9开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。

需要权限: ohos.permission.MANAGE_AUDIO_CONFIG,该权限仅系统应用可申请。

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

参数:

参数名 类型 必填 说明
mute boolean 是否设置麦克风为静音状态。true表示静音,false表示非静音。
callback AsyncCallback<void> 回调函数。当设置麦克风静音状态成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.setMicrophoneMute(true, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to mute the microphone. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the microphone is muted.');
});

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean): Promise<void>

设置麦克风静音状态。使用Promise异步回调。

说明:

从API version 9开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。

需要权限: ohos.permission.MANAGE_AUDIO_CONFIG,该权限仅系统应用可申请。

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

参数:

参数名 类型 必填 说明
mute boolean 是否设置麦克风为静音状态。true表示静音,false表示非静音。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

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

isMicrophoneMute9+

isMicrophoneMute(callback: AsyncCallback<boolean>): void

获取麦克风静音状态。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<boolean> 回调函数。当获取麦克风静音状态成功,err为undefined,data为true表示静音,false表示非静音;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.isMicrophoneMute((err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
});

isMicrophoneMute9+

isMicrophoneMute(): Promise<boolean>

获取麦克风静音状态。使用Promise异步回调。

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

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示麦克风被静音;返回false表示麦克风未被静音。

示例:

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

isMicrophoneMuteSync10+

isMicrophoneMuteSync(): boolean

获取麦克风静音状态。同步返回结果。

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

返回值:

类型 说明
boolean 系统麦克风静音状态。返回true表示静音,返回false表示非静音。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: boolean = audioVolumeGroupManager.isMicrophoneMuteSync();
  console.info(`Indicate that the mute status of the microphone is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the mute status of the microphone, error ${error}.`);
}

on('micStateChange')9+

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

监听系统麦克风状态更改事件(当检测到系统麦克风状态发生改变时触发)。使用callback异步回调。

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

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'micStateChange',当检测到系统麦克风状态发生改变时,触发该事件。
callback Callback<MicStateChangeEvent> 回调函数,返回变更后的麦克风状态。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

off('micStateChange')12+

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

取消监听系统麦克风状态更改事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'micStateChange',当取消监听系统麦克风状态更改事件时,触发该事件。
callback Callback<MicStateChangeEvent> 回调函数,返回变更后的麦克风状态。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters missing; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioVolumeGroupManager.off('micStateChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let micStateChangeCallback = (micStateChange: audio.MicStateChangeEvent) => {
  console.info(`Current microphone status is: ${micStateChange.mute} `);
};

audioVolumeGroupManager.on('micStateChange', micStateChangeCallback);

audioVolumeGroupManager.off('micStateChange', micStateChangeCallback);

isVolumeUnadjustable10+

isVolumeUnadjustable(): boolean

获取固定音量模式开关状态,打开时进入固定音量模式,此时音量固定无法被调节。同步返回结果。

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

返回值:

类型 说明
boolean 固定音量模式开关状态。返回true表示固定音量模式,返回false表示非固定音量模式。

示例:

let volumeAdjustSwitch: boolean = audioVolumeGroupManager.isVolumeUnadjustable();
console.info(`Whether it is volume unadjustable: ${volumeAdjustSwitch}.`);

getSystemVolumeInDb10+

getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback<number>): void

获取音量增益dB值。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volumeLevel number 音量等级。
device DeviceType 设备类型。
callback AsyncCallback<number> 回调函数。当获取音量增益dB值成功,err为undefined,data为获取到的音量增益dB值;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by callback.
6800301 System error. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER, (err: BusinessError, dB: number) => {
  if (err) {
    console.error(`Failed to get the volume DB. ${err}`);
  } else {
    console.info(`Success to get the volume DB. ${dB}`);
  }
});

getSystemVolumeInDb10+

getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise<number>

获取音量增益dB值。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volumeLevel number 音量等级。
device DeviceType 设备类型。

返回值:

类型 说明
Promise<number> Promise对象,返回对应的音量增益dB值。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by promise.
6800301 System error. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER).then((value: number) => {
  console.info(`Success to get the volume DB. ${value}`);
}).catch((error: BusinessError) => {
  console.error(`Fail to adjust the system volume by step. ${error}`);
});

getSystemVolumeInDbSync10+

getSystemVolumeInDbSync(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): number

获取音量增益dB值。同步返回结果。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volumeLevel number 音量等级。
device DeviceType 设备类型。

返回值:

类型 说明
number 返回对应的音量增益dB值。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioVolumeGroupManager.getSystemVolumeInDbSync(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER);
  console.info(`Success to get the volume DB. ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Fail to adjust the system volume by step. ${error}`);
}

getMaxAmplitudeForInputDevice12+

getMaxAmplitudeForInputDevice(inputDevice: AudioDeviceDescriptor): Promise<number>

获取输入设备音频流的最大电平值,取值范围为[0, 1]。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
inputDevice AudioDeviceDescriptor 获取最大电平值的设备信息。

返回值:

类型 说明
Promise<number> Promise对象,返回对应设备的电平值,大小在[0, 1]之间。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by promise.
6800301 System error. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
  capturerFlags: 0 // 音频采集器标志。
};

audio.getAudioManager().getRoutingManager().getPreferredInputDeviceForCapturerInfo(capturerInfo).then((data) => {
  audioVolumeGroupManager.getMaxAmplitudeForInputDevice(data[0]).then((value) => {
    console.info(`mic volatileume amplitude is: ${value}`);
  }).catch((err: BusinessError) => {
    console.error("getMaxAmplitudeForInputDevice error" + JSON.stringify(err));
  })
}).catch((err: BusinessError) => {
  console.error("get outputDeviceId error" + JSON.stringify(err));
})

getMaxAmplitudeForOutputDevice12+

getMaxAmplitudeForOutputDevice(outputDevice: AudioDeviceDescriptor): Promise<number>

获取输出设备音频流的最大电平值,取值范围为[0, 1]。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
outputDevice AudioDeviceDescriptor 获取最大电平值的设备信息。

返回值:

类型 说明
Promise<number> Promise对象,返回对应设备的电平值,大小在[0, 1]之间。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by promise.
6800301 System error. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let rendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
  rendererFlags: 0 // 音频渲染器标志。
};

audio.getAudioManager().getRoutingManager().getPreferOutputDeviceForRendererInfo(rendererInfo).then((data) => {
  audioVolumeGroupManager.getMaxAmplitudeForOutputDevice(data[0]).then((value) => {
    console.info(`mic volatileume amplitude is: ${value}`);
  }).catch((err: BusinessError) => {
    console.error("getMaxAmplitudeForOutputDevice error" + JSON.stringify(err));
  })
}).catch((err: BusinessError) => {
  console.error("getPreferOutputDeviceForRendererInfo error" + JSON.stringify(err));
})

AudioStreamManager9+

管理音频流。

在使用AudioStreamManager的接口之前,需先通过getStreamManager获取AudioStreamManager实例。

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRendererChangeInfoArray> 回调函数。当获取当前音频渲染器的信息成功,err为undefined,data为获取到的当前音频渲染器的信息;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioStreamManager.getCurrentAudioRendererInfoArray(async (err: BusinessError, AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
  console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
  if (err) {
    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  } else {
    if (AudioRendererChangeInfoArray != null) {
      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
        let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
          console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
        }
      }
    }
  }
});

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray>

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

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

返回值:

类型 说明
Promise<AudioRendererChangeInfoArray> Promise对象,返回当前音频渲染器信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

async function getCurrentAudioRendererInfoArray(){
  await audioStreamManager.getCurrentAudioRendererInfoArray().then((AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
    console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
    if (AudioRendererChangeInfoArray != null) {
      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
        let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
          console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
        }
      }
    }
  }).catch((err: BusinessError) => {
    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  });
}

getCurrentAudioRendererInfoArraySync10+

getCurrentAudioRendererInfoArraySync(): AudioRendererChangeInfoArray

获取当前音频渲染器的信息。同步返回结果。

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

返回值:

类型 说明
AudioRendererChangeInfoArray 返回当前音频渲染器信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray = audioStreamManager.getCurrentAudioRendererInfoArraySync();
  console.info(`getCurrentAudioRendererInfoArraySync success.`);
  if (audioRendererChangeInfoArray != null) {
    for (let i = 0; i < audioRendererChangeInfoArray.length; i++) {
      let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = audioRendererChangeInfoArray[i];
      console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
      console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
      console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
      console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
      for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
        console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
        console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
        console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
        console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
        console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
        console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
        console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
        console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
      }
    }
  }
} catch (err) {
  let error = err as BusinessError;
  console.error(`getCurrentAudioRendererInfoArraySync :ERROR: ${error}`);
}

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioCapturerChangeInfoArray> 回调函数。当获取当前音频采集器的信息成功,err为undefined,data为获取到的当前音频采集器的信息;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioStreamManager.getCurrentAudioCapturerInfoArray(async (err: BusinessError, AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => {
  console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
  if (err) {
    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  } else {
    if (AudioCapturerChangeInfoArray != null) {
      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
          console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
        }
      }
    }
  }
});

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray>

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

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

返回值:

类型 说明
Promise<AudioCapturerChangeInfoArray> Promise对象,返回当前音频采集器信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

async function getCurrentAudioCapturerInfoArray(){
  await audioStreamManager.getCurrentAudioCapturerInfoArray().then((AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => {
    console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
    if (AudioCapturerChangeInfoArray != null) {
      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
          console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
        }
      }
    }
  }).catch((err: BusinessError) => {
    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  });
}

getCurrentAudioCapturerInfoArraySync10+

getCurrentAudioCapturerInfoArraySync(): AudioCapturerChangeInfoArray

获取当前音频采集器的信息。同步返回结果。

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

返回值:

类型 说明
AudioCapturerChangeInfoArray 返回当前音频采集器信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray = audioStreamManager.getCurrentAudioCapturerInfoArraySync();
  console.info('getCurrentAudioCapturerInfoArraySync success.');
  if (audioCapturerChangeInfoArray != null) {
    for (let i = 0; i < audioCapturerChangeInfoArray.length; i++) {
      console.info(`StreamId for ${i} is: ${audioCapturerChangeInfoArray[i].streamId}`);
      console.info(`Source for ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.source}`);
      console.info(`Flag  ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
      for (let j = 0; j < audioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
        console.info(`Id: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
        console.info(`Type: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
        console.info(`Role: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
        console.info(`Name: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
        console.info(`Address: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
        console.info(`SampleRate: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
        console.info(`ChannelCount: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
        console.info(`ChannelMask: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
      }
    }
  }
} catch (err) {
  let error = err as BusinessError;
  console.error(`getCurrentAudioCapturerInfoArraySync ERROR: ${error}`);
}

on('audioRendererChange')9+

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

监听音频渲染器更改事件(当音频播放流状态变化或设备变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioRendererChange',当音频播放流状态变化或设备变化时,触发该事件。
callback Callback<AudioRendererChangeInfoArray> 回调函数,返回当前音频渲染器信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioStreamManager.on('audioRendererChange',  (audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
  for (let i = 0; i < audioRendererChangeInfoArray.length; i++) {
    let audioRendererChangeInfo: audio.AudioRendererChangeInfo = audioRendererChangeInfoArray[i];
    console.info(`## RendererChange on is called for ${i} ##`);
    console.info(`StreamId for ${i} is: ${audioRendererChangeInfo.streamId}`);
    console.info(`Content ${i} is: ${audioRendererChangeInfo.rendererInfo.content}`);
    console.info(`Stream ${i} is: ${audioRendererChangeInfo.rendererInfo.usage}`);
    console.info(`Flag ${i} is: ${audioRendererChangeInfo.rendererInfo.rendererFlags}`);
    for (let j = 0;j < audioRendererChangeInfo.deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].name}`);
      console.info(`Address: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].address}`);
      console.info(`SampleRate: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCount: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
    }
  }
});

off('audioRendererChange')9+

off(type: 'audioRendererChange', callback?: Callback<AudioRendererChangeInfoArray>): void

取消监听音频渲染器更改事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioRendererChange',当取消监听音频渲染器更改事件时,触发该事件。
callback18+ Callback<AudioRendererChangeInfoArray> 回调函数,返回当前音频渲染器信息。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioStreamManager.off('audioRendererChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let audioRendererChangeCallback = (audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
  for (let i = 0; i < audioRendererChangeInfoArray.length; i++) {
    let audioRendererChangeInfo: audio.AudioRendererChangeInfo = audioRendererChangeInfoArray[i];
    console.info(`## RendererChange on is called for ${i} ##`);
    console.info(`StreamId for ${i} is: ${audioRendererChangeInfo.streamId}`);
    console.info(`Content ${i} is: ${audioRendererChangeInfo.rendererInfo.content}`);
    console.info(`Stream ${i} is: ${audioRendererChangeInfo.rendererInfo.usage}`);
    console.info(`Flag ${i} is: ${audioRendererChangeInfo.rendererInfo.rendererFlags}`);
    for (let j = 0;j < audioRendererChangeInfo.deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].name}`);
      console.info(`Address: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].address}`);
      console.info(`SampleRate: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCount: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
    }
  }
};

audioStreamManager.on('audioRendererChange', audioRendererChangeCallback);

audioStreamManager.off('audioRendererChange', audioRendererChangeCallback);

on('audioCapturerChange')9+

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

监听音频采集器更改事件(当音频录制流状态变化或设备变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioCapturerChange',当音频录制流状态变化或设备变化时,触发该事件。
callback Callback<AudioCapturerChangeInfoArray> 回调函数,返回当前音频采集器信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) =>  {
  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
    console.info(`## CapChange on is called for element ${i} ##`);
    console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
    console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
    console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
      console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
      console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
    }
  }
});

off('audioCapturerChange')9+

off(type: 'audioCapturerChange', callback?: Callback<AudioCapturerChangeInfoArray>): void

取消监听音频采集器更改事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioCapturerChange',当取消监听音频采集器更改事件时,触发该事件。
callback18+ Callback<AudioCapturerChangeInfoArray> 回调函数,返回当前音频采集器信息。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

audioStreamManager.off('audioCapturerChange');
// 取消该事件的所有监听。
audioStreamManager.off('audioCapturerChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let audioCapturerChangeCallback = (AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) =>  {
  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
    console.info(`## CapChange on is called for element ${i} ##`);
    console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
    console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
    console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
      console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
      console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
    }
  }
};

audioStreamManager.on('audioCapturerChange', audioCapturerChangeCallback);

audioStreamManager.off('audioCapturerChange', audioCapturerChangeCallback);

isActive9+

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

获取指定音频流活跃状态。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音频流类型。
callback AsyncCallback<boolean> 回调函数。当获取指定音频流活跃状态成功,err为undefined,data为true表示活跃,false表示不活跃;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
if (err) {
  console.error(`Failed to obtain the active status of the stream. ${err}`);
  return;
}
  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
});

isActive9+

isActive(volumeType: AudioVolumeType): Promise<boolean>

获取指定音频流是否为活跃状态。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音频流类型。

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示流状态为活跃;返回false表示流状态不活跃。

示例:

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

isActiveSync10+

isActiveSync(volumeType: AudioVolumeType): boolean

获取指定音频流是否为活跃状态。同步返回结果。

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音频流类型。

返回值:

类型 说明
boolean 流的活跃状态。返回true表示活跃,返回false表示不活跃。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: boolean = audioStreamManager.isActiveSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the active status of the stream is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the active status of the stream ${error}.`);
}

getAudioEffectInfoArray10+

getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback<AudioEffectInfoArray>): void

获取当前音效模式的信息。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
usage StreamUsage 音频流使用类型。
callback AsyncCallback<AudioEffectInfoArray> 回调函数。当获取当前音效模式的信息成功,err为undefined,data为获取到的当前音效模式的信息;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MUSIC, async (err: BusinessError, audioEffectInfoArray: audio.AudioEffectInfoArray) => {
  console.info('getAudioEffectInfoArray **** Get Callback Called ****');
  if (err) {
    console.error(`getAudioEffectInfoArray :ERROR: ${err}`);
    return;
  } else {
    console.info(`The effect modes are: ${audioEffectInfoArray}`);
  }
});

getAudioEffectInfoArray10+

getAudioEffectInfoArray(usage: StreamUsage): Promise<AudioEffectInfoArray>

获取当前音效模式的信息。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
usage StreamUsage 音频流使用类型。

返回值:

类型 说明
Promise<AudioEffectInfoArray> Promise对象,返回当前音效模式的信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MUSIC).then((audioEffectInfoArray: audio.AudioEffectInfoArray) => {
  console.info('getAudioEffectInfoArray ######### Get Promise is called ##########');
  console.info(`The effect modes are: ${audioEffectInfoArray}`);
}).catch((err: BusinessError) => {
  console.error(`getAudioEffectInfoArray :ERROR: ${err}`);
});

getAudioEffectInfoArraySync10+

getAudioEffectInfoArraySync(usage: StreamUsage): AudioEffectInfoArray

获取当前音效模式的信息。同步返回结果。

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

参数:

参数名 类型 必填 说明
usage StreamUsage 音频流使用类型。

返回值:

类型 说明
AudioEffectInfoArray 返回当前音效模式的信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioEffectInfoArray: audio.AudioEffectInfoArray = audioStreamManager.getAudioEffectInfoArraySync(audio.StreamUsage.STREAM_USAGE_MUSIC);
  console.info(`The effect modes are: ${audioEffectInfoArray}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`getAudioEffectInfoArraySync ERROR: ${error}`);
}

AudioRoutingManager9+

音频路由管理。

在使用AudioRoutingManager的接口之前,需先通过getRoutingManager获取AudioRoutingManager实例。

getDevices9+

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

获取音频设备列表。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 音频设备类型。
callback AsyncCallback<AudioDeviceDescriptors> 回调函数。当获取音频设备列表成功,err为undefined,data为获取到的音频设备列表;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => {
  if (err) {
    console.error(`Failed to obtain the device list. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device list is obtained.');
});

getDevices9+

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

获取音频设备列表。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 音频设备类型。

返回值:

类型 说明
Promise<AudioDeviceDescriptors> Promise对象,返回设备列表。

示例:

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

getDevicesSync10+

getDevicesSync(deviceFlag: DeviceFlag): AudioDeviceDescriptors

获取音频设备列表。同步返回结果。

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 音频设备类型。

返回值:

类型 说明
AudioDeviceDescriptors 返回设备列表。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let data: audio.AudioDeviceDescriptors = audioRoutingManager.getDevicesSync(audio.DeviceFlag.OUTPUT_DEVICES_FLAG);
  console.info(`Indicate that the device list is obtained ${data}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the device list. ${error}`);
}

isMicBlockDetectionSupported13+

isMicBlockDetectionSupported(): Promise<boolean>

获取当前设备是否支持麦克风状态检测。使用Promise异步回调。

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

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示支持;返回false表示不支持。

示例:

audioRoutingManager.isMicBlockDetectionSupported().then((value: boolean) => {
  console.info(`Query whether microphone block detection is supported on current device result is ${value}.`);
});

on('micBlockStatusChanged')13+

on(type: 'micBlockStatusChanged', callback: Callback<DeviceBlockStatusInfo>): void

监听麦克风堵塞状态变化事件。使用callback异步回调。

使用此功能前,请查询设备是否支持检测。应用在使用麦克风录音时,若麦克风堵塞状态发生变化,将触发该事件。目前此检测功能仅支持麦克风位于本地设备上。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'micBlockStatusChanged',当麦克风堵塞状态发生变化时,触发该事件。
callback Callback<DeviceBlockStatusInfo> 回调函数,返回麦克风被堵塞状态和设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 在使用此功能之前,应先查询当前设备是否支持检测。
audioRoutingManager.isMicBlockDetectionSupported().then((value: boolean) => {
  console.info(`Query whether microphone block detection is supported on current device result is ${value}.`);
  if (value) {
    audioRoutingManager.on('micBlockStatusChanged', (micBlockStatusChanged: audio.DeviceBlockStatusInfo) => {
      console.info(`block status : ${micBlockStatusChanged.blockStatus} `);
    });
  }
});

off('micBlockStatusChanged')13+

off(type: 'micBlockStatusChanged', callback?: Callback<DeviceBlockStatusInfo>): void

取消监听麦克风堵塞状态变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'micBlockStatusChanged',当取消监听音频麦克风是否被堵塞变化事件时,触发该事件。
callback Callback<DeviceBlockStatusInfo> 回调函数,返回麦克风被堵塞状态和设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRoutingManager.off('micBlockStatusChanged');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let micBlockStatusCallback = (micBlockStatusChanged: audio.DeviceBlockStatusInfo) => {
  console.info(`block status : ${micBlockStatusChanged.blockStatus} `);
};

audioRoutingManager.on('micBlockStatusChanged', micBlockStatusCallback);

audioRoutingManager.off('micBlockStatusChanged', micBlockStatusCallback);

on('deviceChange')9+

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

监听音频设备连接状态变化事件(当音频设备连接状态发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'deviceChange',当音频设备连接状态发生变化时,触发该事件。
deviceFlag DeviceFlag 音频设备类型。
callback Callback<DeviceChangeAction> 回调函数,返回设备更新详情。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

off('deviceChange')9+

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

取消监听音频设备连接状态变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'deviceChange',当取消监听音频设备连接变化事件时,触发该事件。
callback Callback<DeviceChangeAction> 回调函数,返回设备更新详情。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRoutingManager.off('deviceChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let deviceChangeCallback = (deviceChanged: audio.DeviceChangeAction) => {
  console.info('device change type : ' + deviceChanged.type);
  console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
};

audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, deviceChangeCallback);

audioRoutingManager.off('deviceChange', deviceChangeCallback);

setCommunicationDevice9+

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

设置通信设备激活状态。使用callback异步回调。

该接口由于功能设计变化,将在后续版本废弃,不建议开发者使用。

推荐使用AVSession提供的设备切换组件,实现通话设备切换。

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

参数:

参数名 类型 必填 说明
deviceType CommunicationDeviceType 音频设备类型。
active boolean 是否设置设备为激活状态。true表示激活,false表示未激活。
callback AsyncCallback<void> 回调函数。当设置通信设备激活状态成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

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

getAvailableDevices12+

getAvailableDevices(deviceUsage: DeviceUsage): AudioDeviceDescriptors

获取音频可选设备列表。同步返回结果。

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

参数:

参数名 类型 必填 说明
deviceUsage DeviceUsage 音频设备类型(根据用途分类)。

返回值:

类型 说明
AudioDeviceDescriptors 返回设备列表。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let data: audio.AudioDeviceDescriptors = audioRoutingManager.getAvailableDevices(audio.DeviceUsage.MEDIA_OUTPUT_DEVICES);
  console.info(`Indicate that the device list is obtained ${data}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the device list. ${error}`);
}

on('availableDeviceChange')12+

on(type: 'availableDeviceChange', deviceUsage: DeviceUsage, callback: Callback<DeviceChangeAction>): void

监听音频可选设备连接状态变化事件(当音频可选设备连接状态发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'availableDeviceChange',当音频可选设备连接状态发生变化时,触发该事件。
deviceUsage DeviceUsage 音频设备类型(根据用途分类)。
callback Callback<DeviceChangeAction> 回调函数,返回设备更新详情。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioRoutingManager.on('availableDeviceChange', audio.DeviceUsage.MEDIA_OUTPUT_DEVICES, (deviceChanged: audio.DeviceChangeAction) => {
  console.info('device change type : ' + deviceChanged.type);
  console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
});

off('availableDeviceChange')12+

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

取消监听音频可选设备连接状态变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'availableDeviceChange',当取消监听音频可选设备连接变化事件时,触发该事件。
callback Callback<DeviceChangeAction> 回调函数,返回可选设备更新详情。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRoutingManager.off('availableDeviceChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let availableDeviceChangeCallback = (deviceChanged: audio.DeviceChangeAction) => {
  console.info('device change type : ' + deviceChanged.type);
  console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
};

audioRoutingManager.on('availableDeviceChange', audio.DeviceUsage.MEDIA_OUTPUT_DEVICES, availableDeviceChangeCallback);

audioRoutingManager.off('availableDeviceChange', availableDeviceChangeCallback);

setCommunicationDevice9+

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

设置通信设备激活状态。使用Promise异步回调。

该接口由于功能设计变化,将在后续版本废弃,不建议开发者使用。

推荐开发者使用AVSession提供的设备切换组件,实现通话设备切换。

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

参数:

参数名 类型 必填 说明
deviceType CommunicationDeviceType 活跃音频设备类型。
active boolean 是否设置设备为激活状态。true表示激活,false表示未激活。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

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

isCommunicationDeviceActive9+

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

获取指定通信设备的激活状态。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
deviceType CommunicationDeviceType 活跃音频设备类型。
callback AsyncCallback<boolean> 回调函数。当获取指定通信设备的激活状态成功,err为undefined,data为true表示激活,false表示未激活;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the active status of the device. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the active status of the device is obtained.');
});

isCommunicationDeviceActive9+

isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>

获取指定通信设备的激活状态。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
deviceType CommunicationDeviceType 活跃音频设备类型。

返回值:

Type Description
Promise<boolean> Promise对象。返回true表示设备已激活;返回false表示设备未激活。

示例:

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

isCommunicationDeviceActiveSync10+

isCommunicationDeviceActiveSync(deviceType: CommunicationDeviceType): boolean

获取指定通信设备的激活状态。同步返回结果。

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

参数:

参数名 类型 必填 说明
deviceType CommunicationDeviceType 活跃音频设备类型。

返回值:

Type Description
boolean 设备是否处于激活状态。true表示处于激活状态,false表示处于未激活状态。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: boolean = audioRoutingManager.isCommunicationDeviceActiveSync(audio.CommunicationDeviceType.SPEAKER);
  console.info(`Indicate that the active status of the device is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the active status of the device ${error}.`);
}

getPreferOutputDeviceForRendererInfo10+

getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void

根据音频信息,返回优先级最高的输出设备。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
rendererInfo AudioRendererInfo 音频渲染器信息。
callback AsyncCallback<AudioDeviceDescriptors> 回调函数。当获取优先级最高的输出设备成功,err为undefined,data为获取到的优先级最高的输出设备信息;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by callback.
6800301 System error. Return by callback.

示例:

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

let rendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
  rendererFlags: 0 // 音频渲染器标志。
};

async function getPreferOutputDevice() {
  audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => {
    if (err) {
      console.error(`Result ERROR: ${err}`);
    } else {
      console.info(`device descriptor: ${desc}`);
    }
  });
}

getPreferOutputDeviceForRendererInfo10+

getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo): Promise<AudioDeviceDescriptors>

根据音频信息,返回优先级最高的输出设备。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
rendererInfo AudioRendererInfo 音频渲染器信息。

返回值:

类型 说明
Promise<AudioDeviceDescriptors> Promise对象,返回优先级最高的输出设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by promise.
6800301 System error. Return by promise.

示例:

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

let rendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
  rendererFlags: 0 // 音频渲染器标志。
};

async function getPreferOutputDevice() {
  audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo).then((desc: audio.AudioDeviceDescriptors) => {
    console.info(`device descriptor: ${desc}`);
  }).catch((err: BusinessError) => {
    console.error(`Result ERROR: ${err}`);
  })
}

getPreferredOutputDeviceForRendererInfoSync10+

getPreferredOutputDeviceForRendererInfoSync(rendererInfo: AudioRendererInfo): AudioDeviceDescriptors

根据音频信息,返回优先级最高的输出设备。同步返回结果。

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

参数:

参数名 类型 必填 说明
rendererInfo AudioRendererInfo 音频渲染器信息。

返回值:

类型 说明
AudioDeviceDescriptors 返回优先级最高的输出设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

let rendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
  rendererFlags: 0 // 音频渲染器标志。
};

try {
  let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredOutputDeviceForRendererInfoSync(rendererInfo);
  console.info(`device descriptor: ${desc}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Result ERROR: ${error}`);
}

on('preferOutputDeviceChangeForRendererInfo')10+

on(type: 'preferOutputDeviceChangeForRendererInfo', rendererInfo: AudioRendererInfo, callback: Callback<AudioDeviceDescriptors>): void

监听最高优先级输出设备变化事件(当最高优先级输出设备发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'preferOutputDeviceChangeForRendererInfo',当最高优先级输出设备发生变化时,触发该事件。
rendererInfo AudioRendererInfo 音频渲染器信息。
callback Callback<AudioDeviceDescriptors> 回调函数,返回优先级最高的输出设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

let rendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
  rendererFlags: 0 // 音频渲染器标志。
};

audioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, (desc: audio.AudioDeviceDescriptors) => {
  console.info(`device descriptor: ${desc}`);
});

off('preferOutputDeviceChangeForRendererInfo')10+

off(type: 'preferOutputDeviceChangeForRendererInfo', callback?: Callback<AudioDeviceDescriptors>): void

取消监听最高优先级输出音频设备变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'preferOutputDeviceChangeForRendererInfo',当取消监听最高优先级输出音频设备变化事件时,触发该事件。
callback Callback<AudioDeviceDescriptors> 回调函数,返回优先级最高的输出设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRoutingManager.off('preferOutputDeviceChangeForRendererInfo');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let preferOutputDeviceChangeForRendererInfoCallback = (desc: audio.AudioDeviceDescriptors) => {
  console.info(`device descriptor: ${desc}`);
};
let rendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
  rendererFlags: 0 // 音频渲染器标志。
};

audioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, preferOutputDeviceChangeForRendererInfoCallback);

audioRoutingManager.off('preferOutputDeviceChangeForRendererInfo', preferOutputDeviceChangeForRendererInfoCallback);

getPreferredInputDeviceForCapturerInfo10+

getPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void

根据音频信息,返回优先级最高的输入设备。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
capturerInfo AudioCapturerInfo 音频采集器信息。
callback AsyncCallback<AudioDeviceDescriptors> 回调函数。当获取优先级最高的输入设备成功,err为undefined,data为获取到的优先级最高的输入设备信息;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by callback.
6800301 System error. Return by callback.

示例:

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

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
  capturerFlags: 0 // 音频采集器标志。
};

audioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => {
  if (err) {
    console.error(`Result ERROR: ${err}`);
  } else {
    console.info(`device descriptor: ${desc}`);
  }
});

getPreferredInputDeviceForCapturerInfo10+

getPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo): Promise<AudioDeviceDescriptors>

根据音频信息,返回优先级最高的输入设备。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
capturerInfo AudioCapturerInfo 音频采集器信息。

返回值:

类型 说明
Promise<AudioDeviceDescriptors> Promise对象,返回优先级最高的输入设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by promise.
6800301 System error. Return by promise.

示例:

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

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
  capturerFlags: 0 // 音频采集器标志。
};

audioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo).then((desc: audio.AudioDeviceDescriptors) => {
  console.info(`device descriptor: ${desc}`);
}).catch((err: BusinessError) => {
  console.error(`Result ERROR: ${err}`);
});

getPreferredInputDeviceForCapturerInfoSync10+

getPreferredInputDeviceForCapturerInfoSync(capturerInfo: AudioCapturerInfo): AudioDeviceDescriptors

根据音频信息,返回优先级最高的输入设备。同步返回结果。

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

参数:

参数名 类型 必填 说明
capturerInfo AudioCapturerInfo 音频采集器信息。

返回值:

类型 说明
AudioDeviceDescriptors 返回优先级最高的输入设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
  capturerFlags: 0 // 音频采集器标志。
};

try {
  let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredInputDeviceForCapturerInfoSync(capturerInfo);
  console.info(`device descriptor: ${desc}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Result ERROR: ${error}`);
}

on('preferredInputDeviceChangeForCapturerInfo')10+

on(type: 'preferredInputDeviceChangeForCapturerInfo', capturerInfo: AudioCapturerInfo, callback: Callback<AudioDeviceDescriptors>): void

监听最高优先级输入设备变化事件(当最高优先级输入设备发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'preferredInputDeviceChangeForCapturerInfo',当最高优先级输入设备发生变化时,触发该事件。
capturerInfo AudioCapturerInfo 音频采集器信息。
callback Callback<AudioDeviceDescriptors> 回调函数,返回优先级最高的输入设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
  capturerFlags: 0 // 音频采集器标志。
};

audioRoutingManager.on('preferredInputDeviceChangeForCapturerInfo', capturerInfo, (desc: audio.AudioDeviceDescriptors) => {
  console.info(`device descriptor: ${desc}`);
});

off('preferredInputDeviceChangeForCapturerInfo')10+

off(type: 'preferredInputDeviceChangeForCapturerInfo', callback?: Callback<AudioDeviceDescriptors>): void

取消监听最高优先级输入音频设备变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'preferredInputDeviceChangeForCapturerInfo',当取消监听最高优先级输入音频设备变化事件时,触发该事件。
callback Callback<AudioDeviceDescriptors> 回调函数,返回优先级最高的输入设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRoutingManager.off('preferredInputDeviceChangeForCapturerInfo');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let preferredInputDeviceChangeForCapturerInfoCallback = (desc: audio.AudioDeviceDescriptors) => {
  console.info(`device descriptor: ${desc}`);
};
let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
  capturerFlags: 0 // 音频采集器标志。
};

audioRoutingManager.on('preferredInputDeviceChangeForCapturerInfo', capturerInfo, preferredInputDeviceChangeForCapturerInfoCallback);

audioRoutingManager.off('preferredInputDeviceChangeForCapturerInfo', preferredInputDeviceChangeForCapturerInfoCallback);

AudioSessionManager12+

音频会话管理。

在使用AudioSessionManager的接口之前,需先通过getSessionManager获取AudioSessionManager实例。

activateAudioSession12+

activateAudioSession(strategy: AudioSessionStrategy): Promise<void>

激活音频会话。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
strategy AudioSessionStrategy 音频会话策略。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters unspecified. 2.Incorrect parameter types.
6800101 Parameter verification failed.
6800301 System error. Returned by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let strategy: audio.AudioSessionStrategy = {
  concurrencyMode: audio.AudioConcurrencyMode.CONCURRENCY_MIX_WITH_OTHERS
};

audioSessionManager.activateAudioSession(strategy).then(() => {
  console.info('activateAudioSession SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

deactivateAudioSession12+

deactivateAudioSession(): Promise<void>

停用音频会话。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

错误码:

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

错误码ID 错误信息
6800301 System error. Returned by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioSessionManager.deactivateAudioSession().then(() => {
  console.info('deactivateAudioSession SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

isAudioSessionActivated12+

isAudioSessionActivated(): boolean

检查音频会话是否已激活。

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

返回值:

类型 说明
boolean 音频会话是否处于激活状态。true表示已激活,false表示已停用。

示例:

let isActivated = audioSessionManager.isAudioSessionActivated();

on('audioSessionDeactivated')12+

on(type: 'audioSessionDeactivated', callback: Callback<AudioSessionDeactivatedEvent>): void

监听音频会话停用事件(当音频会话停用时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioSessionDeactivated',当音频会话停用时,触发该事件。
callback Callback<AudioSessionDeactivatedEvent> 回调函数,返回音频会话停用原因。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters unspecified. 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioSessionManager.on('audioSessionDeactivated', (audioSessionDeactivatedEvent: audio.AudioSessionDeactivatedEvent) => {
  console.info(`reason of audioSessionDeactivated: ${audioSessionDeactivatedEvent.reason} `);
});

off('audioSessionDeactivated')12+

off(type: 'audioSessionDeactivated', callback?: Callback<AudioSessionDeactivatedEvent>): void

取消监听音频会话停用事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioSessionDeactivated',当取消监听音频会话停用事件时,触发该事件。
callback Callback<AudioSessionDeactivatedEvent> 回调函数,返回音频会话停用原因。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioSessionManager.off('audioSessionDeactivated');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let audioSessionDeactivatedCallback = (audioSessionDeactivatedEvent: audio.AudioSessionDeactivatedEvent) => {
  console.info(`reason of audioSessionDeactivated: ${audioSessionDeactivatedEvent.reason} `);
};

audioSessionManager.on('audioSessionDeactivated', audioSessionDeactivatedCallback);

audioSessionManager.off('audioSessionDeactivated', audioSessionDeactivatedCallback);

AudioSpatializationManager18+

空间音频管理。

在使用AudioSpatializationManager的接口之前,需先通过getSpatializationManager获取AudioSpatializationManager实例。

isSpatializationEnabledForCurrentDevice18+

isSpatializationEnabledForCurrentDevice(): boolean

获取当前设备空间音频渲染是否开启。同步返回结果。

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

返回值:

类型 说明
boolean 当前设备空间音频渲染是否开启。true表示开启,false表示未开启。

示例:

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

let isSpatializationEnabledForCurrentDevice: boolean = audioSpatializationManager.isSpatializationEnabledForCurrentDevice();
console.info(`AudioSpatializationManager isSpatializationEnabledForCurrentDevice: ${isSpatializationEnabledForCurrentDevice}`);

on('spatializationEnabledChangeForCurrentDevice')18+

on(type: 'spatializationEnabledChangeForCurrentDevice', callback: Callback<boolean>): void

监听当前设备空间音频渲染开关状态变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'spatializationEnabledChangeForCurrentDevice',当空间音频渲染开关状态变化时,触发该事件。
callback Callback<boolean> 回调函数。返回true表示打开空间音频渲染状态;返回false表示关闭空间音频渲染状态。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

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

audioSpatializationManager.on('spatializationEnabledChangeForCurrentDevice', (isSpatializationEnabledForCurrentDevice: boolean) => {
  console.info(`isSpatializationEnabledForCurrentDevice: ${isSpatializationEnabledForCurrentDevice}`);
});

off('spatializationEnabledChangeForCurrentDevice')18+

off(type: 'spatializationEnabledChangeForCurrentDevice', callback?: Callback<boolean>): void

取消监听当前设备空间音频渲染开关状态变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'spatializationEnabledChangeForCurrentDevice',当取消订阅当前设备空间音频渲染开关状态变化事件时,触发该事件。
callback Callback<boolean> 回调函数。返回true表示打开空间音频渲染状态;返回false表示关闭空间音频渲染状态。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

import { audio } from '@kit.AudioKit';
audioSpatializationManager.off('spatializationEnabledChangeForCurrentDevice');

AudioRendererChangeInfoArray9+

type AudioRendererChangeInfoArray = Array<Readonly<AudioRendererChangeInfo>>

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

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

类型 说明
Array<Readonly<AudioRendererChangeInfo>> 数组类型,AudioRenderChangeInfo数组,只读。

AudioRendererChangeInfo9+

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

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

名称 类型 只读 可选 说明
streamId number 音频流唯一id。
rendererInfo AudioRendererInfo 音频渲染器信息。
deviceDescriptors AudioDeviceDescriptors 音频设备描述。

示例:

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

const audioManager = audio.getAudioManager();
let audioStreamManager = audioManager.getStreamManager();

audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
    console.info(`## RendererChange on is called for ${i} ##`);
    console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
    console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
    console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
    console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
    let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
    for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
      console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
      console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
      console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
      console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
    }
  }
});

AudioCapturerChangeInfoArray9+

type AudioCapturerChangeInfoArray = Array<Readonly<AudioCapturerChangeInfo>>

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

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

类型 说明
Array<Readonly<AudioCapturerChangeInfo>> 数组类型,AudioCapturerChangeInfo数组,只读。

AudioCapturerChangeInfo9+

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

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

名称 类型 只读 可选 说明
streamId number 音频流唯一id。
capturerInfo AudioCapturerInfo 音频采集器信息。
deviceDescriptors AudioDeviceDescriptors 音频设备信息。
muted11+ boolean 音频采集器是否处于静音状态。true表示静音,false表示非静音。

示例:

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

const audioManager = audio.getAudioManager();
let audioStreamManager = audioManager.getStreamManager();

audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
    console.info(`## CapChange on is called for element ${i} ##`);
    console.info(`StrId for  ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
    console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
    console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
    let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
      console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
      console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
      console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
      console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
    }
  }
});

AudioEffectInfoArray10+

type AudioEffectInfoArray = Array<Readonly<AudioEffectMode>>

待查询ContentType和StreamUsage组合场景下的音效模式数组类型,AudioEffectMode数组,只读。

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

类型 说明
Array<Readonly<AudioEffectMode>> 待查询ContentType和StreamUsage组合场景下的音效模式数组类型,AudioEffectMode数组,只读。

AudioDeviceDescriptors

type AudioDeviceDescriptors = Array<Readonly<AudioDeviceDescriptor>>

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

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

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

类型 说明
Array<Readonly<AudioDeviceDescriptor>> 设备属性数组类型,为AudioDeviceDescriptor的数组,只读。

AudioDeviceDescriptor

描述音频设备。

名称 类型 只读 可选 说明
deviceRole DeviceRole 设备角色。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
deviceType DeviceType 设备类型。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
id9+ number 唯一的设备id。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
name9+ string 设备名称。
如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
address9+ string 设备地址。
如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
sampleRates9+ Array<number> 支持的采样率。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
channelCounts9+ Array<number> 支持的通道数。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
channelMasks9+ Array<number> 支持的通道掩码。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
displayName10+ string 设备显示名。
系统能力: SystemCapability.Multimedia.Audio.Device
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
encodingTypes11+ Array<AudioEncodingType> 支持的编码类型。
系统能力: SystemCapability.Multimedia.Audio.Core
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
spatializationSupported18+ boolean 设备是否支持空间音频。true表示支持空间音频,false表示不支持空间音频。
系统能力: SystemCapability.Multimedia.Audio.Spatialization

示例:

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

function displayDeviceProp(value: audio.AudioDeviceDescriptor) {
  deviceRoleValue = value.deviceRole;
  deviceTypeValue = value.deviceType;
}

let deviceRoleValue: audio.DeviceRole | undefined = undefined;
let deviceTypeValue: audio.DeviceType | undefined = undefined;
audio.getAudioManager().getRoutingManager().getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((value: audio.AudioDeviceDescriptors) => {
  console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
  value.forEach(displayDeviceProp);
  if (deviceTypeValue != undefined && deviceRoleValue != undefined){
    console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  PASS');
  } else {
    console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  FAIL');
  }
});

AudioDataCallbackResult12+

表示音频数据回调结果的枚举。

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

名称 说明
INVALID -1 表示该回调数据无效。
VALID 0 表示该回调数据有效。

AudioRendererWriteDataCallback12+

type AudioRendererWriteDataCallback = (data: ArrayBuffer) => AudioDataCallbackResult | void

回调函数类型,用于音频渲染器的数据写入,回调函数结束后,音频服务会把data指向的数据放入队列里等待播放,因此请勿在回调外再次更改data指向的数据, 且务必保证往data填满待播放数据, 否则会导致音频服务播放杂音。

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

参数:

参数名 类型 必填 说明
data ArrayBuffer 待写入缓冲区的数据。

返回值:

类型 说明
AudioDataCallbackResult | void 如果返回 void 或 AudioDataCallbackResult.VALID:表示数据有效,将播放音频数据;如果返回 AudioDataCallbackResult.INVALID:表示数据无效,且音频数据不播放。

AudioTimestampInfo19+

音频流时间戳和当前数据帧位置信息。

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

名称 类型 只读 可选 说明
framePos number 当前播放或者录制的数据帧位置。
timestamp number 播放或者录制到当前数据帧位置时对应的时间戳。

AudioRenderer8+

提供音频渲染的相关接口。

在使用AudioRenderer的接口之前,需先通过createAudioRenderer获取AudioRenderer实例。

属性

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

名称 类型 只读 可选 说明
state8+ AudioState 音频渲染器的状态。

示例:

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

let state: audio.AudioState = audioRenderer.state;

getRendererInfo8+

getRendererInfo(callback: AsyncCallback<AudioRendererInfo>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRendererInfo> 回调函数。当获取音频渲染器的信息成功,err为undefined,data为获取到的音频渲染器的信息;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getRendererInfo((err: BusinessError, rendererInfo: audio.AudioRendererInfo) => {
  console.info('Renderer GetRendererInfo:');
  console.info(`Renderer content: ${rendererInfo.content}`);
  console.info(`Renderer usage: ${rendererInfo.usage}`);
  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
});

getRendererInfo8+

getRendererInfo(): Promise<AudioRendererInfo>

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

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

返回值:

类型 说明
Promise<AudioRendererInfo> Promise对象,返回音频渲染器信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getRendererInfo().then((rendererInfo: audio.AudioRendererInfo) => {
  console.info('Renderer GetRendererInfo:');
  console.info(`Renderer content: ${rendererInfo.content}`);
  console.info(`Renderer usage: ${rendererInfo.usage}`);
  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
});

getRendererInfoSync10+

getRendererInfoSync(): AudioRendererInfo

获取当前创建的音频渲染器信息。同步返回结果。

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

返回值:

类型 说明
AudioRendererInfo 返回音频渲染器信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let rendererInfo: audio.AudioRendererInfo = audioRenderer.getRendererInfoSync();
  console.info(`Renderer content: ${rendererInfo.content}`);
  console.info(`Renderer usage: ${rendererInfo.usage}`);
  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${error}`);
}

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

获取音频流信息。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioStreamInfo> 回调函数。当获取音频流信息成功,err为undefined,data为获取到的音频流信息;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => {
  console.info('Renderer GetStreamInfo:');
  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  console.info(`Renderer channel: ${streamInfo.channels}`);
  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
});

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

获取音频流信息。使用Promise异步回调。

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

返回值:

类型 说明
Promise<AudioStreamInfo> Promise对象,返回音频流信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getStreamInfo().then((streamInfo: audio.AudioStreamInfo) => {
  console.info('Renderer GetStreamInfo:');
  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  console.info(`Renderer channel: ${streamInfo.channels}`);
  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getStreamInfoSync10+

getStreamInfoSync(): AudioStreamInfo

获取音频流信息。同步返回结果。

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

返回值:

类型 说明
AudioStreamInfo 返回音频流信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let streamInfo: audio.AudioStreamInfo = audioRenderer.getStreamInfoSync();
  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  console.info(`Renderer channel: ${streamInfo.channels}`);
  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

getAudioStreamId9+

getAudioStreamId(callback: AsyncCallback<number>): void

获取音频流id。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取音频流id成功,err为undefined,data为获取到的音频流id;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getAudioStreamId((err: BusinessError, streamId: number) => {
  console.info(`Renderer GetStreamId: ${streamId}`);
});

getAudioStreamId9+

getAudioStreamId(): Promise<number>

获取音频流id。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回音频流id。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getAudioStreamId().then((streamId: number) => {
  console.info(`Renderer getAudioStreamId: ${streamId}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioStreamIdSync10+

getAudioStreamIdSync(): number

获取音频流id。同步返回结果。

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

返回值:

类型 说明
number 返回音频流id。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let streamId: number = audioRenderer.getAudioStreamIdSync();
  console.info(`Renderer getAudioStreamIdSync: ${streamId}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

setAudioEffectMode10+

setAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback<void>): void

设置当前音效模式。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
mode AudioEffectMode 音效模式。
callback AsyncCallback<void> 回调函数。当设置当前音效模式成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT, (err: BusinessError) => {
  if (err) {
    console.error('Failed to set params');
  } else {
    console.info('Callback invoked to indicate a successful audio effect mode setting.');
  }
});

setAudioEffectMode10+

setAudioEffectMode(mode: AudioEffectMode): Promise<void>

设置当前音效模式。使用Promise异步回调。

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

参数:

参数名 类型 必填 说明
mode AudioEffectMode 音效模式。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT).then(() => {
  console.info('setAudioEffectMode SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioEffectMode10+

getAudioEffectMode(callback: AsyncCallback<AudioEffectMode>): void

获取当前音效模式。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioEffectMode> 回调函数。当获取当前音效模式成功,err为undefined,data为获取到的当前音效模式;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getAudioEffectMode((err: BusinessError, effectMode: audio.AudioEffectMode) => {
  if (err) {
    console.error('Failed to get params');
  } else {
    console.info(`getAudioEffectMode: ${effectMode}`);
  }
});

getAudioEffectMode10+

getAudioEffectMode(): Promise<AudioEffectMode>

获取当前音效模式。使用Promise异步回调。

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

返回值:

类型 说明
Promise<AudioEffectMode> Promise对象,返回当前音效模式。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getAudioEffectMode().then((effectMode: audio.AudioEffectMode) => {
  console.info(`getAudioEffectMode: ${effectMode}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

start8+

start(callback: AsyncCallback<void>): void

启动音频渲染器。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当启动音频渲染器成功,err为undefined,否则为错误对象。异常将返回error对象:
错误码6800301:表示包含状态检查异常、焦点抢占失败、系统处理异常(具体错误查看系统日志)。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.start((err: BusinessError) => {
  if (err) {
    console.error('Renderer start failed.');
  } else {
    console.info('Renderer start success.');
  }
});

start8+

start(): Promise<void>

启动音频渲染器。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象,成功表示启动音频渲染器成功。异常将返回error对象:
错误码6800301:表示包含状态检查异常、焦点抢占失败、系统处理异常(具体错误查看系统日志)。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.start().then(() => {
  console.info('Renderer started');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

pause8+

pause(callback: AsyncCallback<void>): void

暂停音频渲染。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当暂停渲染成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.pause((err: BusinessError) => {
  if (err) {
    console.error('Renderer pause failed');
  } else {
    console.info('Renderer paused.');
  }
});

pause8+

pause(): Promise<void>

暂停音频渲染。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.pause().then(() => {
  console.info('Renderer paused');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

drain8+

drain(callback: AsyncCallback<void>): void

检查缓冲区是否已被耗尽。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当检查缓冲区是否已被耗尽成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.drain((err: BusinessError) => {
  if (err) {
    console.error('Renderer drain failed');
  } else {
    console.info('Renderer drained.');
  }
});

drain8+

drain(): Promise<void>

检查缓冲区是否已被耗尽。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

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

flush11+

flush(): Promise<void>

清空缓冲区(AudioState为STATE_RUNNING、STATE_PAUSED、STATE_STOPPED状态下可用)。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

错误码:

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

错误码ID 错误信息
6800103 Operation not permit at current state. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.flush().then(() => {
  console.info('Renderer flushed successfully');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

stop8+

stop(callback: AsyncCallback<void>): void

停止音频渲染。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当停止渲染成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.stop((err: BusinessError) => {
  if (err) {
    console.error('Renderer stop failed');
  } else {
    console.info('Renderer stopped.');
  }
});

stop8+

stop(): Promise<void>

停止音频渲染。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

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

release8+

release(callback: AsyncCallback<void>): void

释放音频渲染器。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当释放音频渲染器成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.release((err: BusinessError) => {
  if (err) {
    console.error('Renderer release failed');
  } else {
    console.info('Renderer released.');
  }
});

release8+

release(): Promise<void>

释放音频渲染器。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

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

write8+(deprecated)

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

写入缓冲区。使用callback异步回调。

说明: 从API version 8开始支持,从API version 11开始废弃,建议使用on('writeData')替代。

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

参数:

参数名 类型 必填 说明
buffer ArrayBuffer 要写入缓冲区的数据。
callback AsyncCallback<number> 回调函数。当写入缓冲区成功,err为undefined,data为获取到的写入的字节数;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo as fs } from '@kit.CoreFileKit';
import { common } from '@kit.AbilityKit';

let bufferSize: number;
class Options {
  offset?: number;
  length?: number;
}
audioRenderer.getBufferSize().then((data: number)=> {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
  console.info(`Buffer size: ${bufferSize}`);
  // 请在组件内获取context,确保this.getUIContext().getHostContext()返回结果为UIAbilityContext。
  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
  let path = context.cacheDir;
  let filePath = path + '/StarWars10s-2C-48000-4SW.pcm';
  let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  fs.stat(filePath).then(async (stat: fs.Stat) => {
    let buf = new ArrayBuffer(bufferSize);
    let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
    for (let i = 0;i < len; i++) {
      let options: Options = {
        offset: i * bufferSize,
        length: bufferSize
      };
      let readSize: number = await fs.read(file.fd, buf, options);
      let writeSize: number = await new Promise((resolve,reject)=>{
        audioRenderer.write(buf,(err: BusinessError, writeSize: number)=>{
          if(err){
            reject(err)
          }else{
            resolve(writeSize)
          }
        })
      })
    }
  });
  }).catch((err: BusinessError) => {
    console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});

write8+(deprecated)

write(buffer: ArrayBuffer): Promise<number>

写入缓冲区。使用Promise异步回调。

说明: 从API version 8开始支持,从API version 11开始废弃,建议使用on('writeData')替代。

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

参数:

参数名 类型 必填 说明
buffer ArrayBuffer 要写入缓冲区的数据。

返回值:

类型 说明
Promise<number> Promise对象,返回写入的字节数。

示例:

import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo as fs } from '@kit.CoreFileKit';
import { common } from '@kit.AbilityKit';

let bufferSize: number;
class Options {
  offset?: number;
  length?: number;
}
audioRenderer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
  console.info(`BufferSize: ${bufferSize}`);
  // 请在组件内获取context,确保this.getUIContext().getHostContext()返回结果为UIAbilityContext。
  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
  let path = context.cacheDir;
  let filePath = path + '/StarWars10s-2C-48000-4SW.pcm';
  let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  fs.stat(filePath).then(async (stat: fs.Stat) => {
    let buf = new ArrayBuffer(bufferSize);
    let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
    for (let i = 0;i < len; i++) {
      let options: Options = {
        offset: i * bufferSize,
        length: bufferSize
      };
      let readSize: number = await fs.read(file.fd, buf, options);
      try{
        let writeSize: number = await audioRenderer.write(buf);
      } catch(err) {
        let error = err as BusinessError;
        console.error(`audioRenderer.write err: ${error}`);
      }
    }
  });
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

获取当前播放位置的时间戳(从1970年1月1日开始),单位为纳秒。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取时间戳成功,err为undefined,data为获取到的时间戳;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getAudioTime((err: BusinessError, timestamp: number) => {
  console.info(`Current timestamp: ${timestamp}`);
});

getAudioTime8+

getAudioTime(): Promise<number>

获取当前播放位置的时间戳(从1970年1月1日开始),单位为纳秒。使用Promise异步回调。

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

返回值:

类型 描述
Promise<number> Promise对象,返回时间戳。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getAudioTime().then((timestamp: number) => {
  console.info(`Current timestamp: ${timestamp}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioTimeSync10+

getAudioTimeSync(): number

获取当前播放位置的时间戳(从1970年1月1日开始),单位为纳秒。同步返回结果。

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

返回值:

类型 描述
number 返回时间戳。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let timestamp: number = audioRenderer.getAudioTimeSync();
  console.info(`Current timestamp: ${timestamp}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

getAudioTimestampInfo19+

getAudioTimestampInfo(): Promise<AudioTimestampInfo>

获取音频流时间戳和当前数据帧位置信息。使用Promise异步回调。

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

返回值:

类型 描述
Promise<AudioTimestampInfo> Promise对象,返回音频流时间戳和当前数据帧位置信息。

错误码:

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

错误码ID 错误信息
6800103 Operation not permit at current state.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getAudioTimestampInfo().then((audioTimestampInfo: audio.AudioTimestampInfo) => {
  console.info(`Current timestamp: ${audioTimestampInfo.timestamp}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioTimestampInfoSync19+

getAudioTimestampInfoSync(): AudioTimestampInfo

获取音频流时间戳和当前数据帧位置信息。同步返回结果。

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

返回值:

类型 描述
AudioTimestampInfo 返回音频流时间戳和当前数据帧位置信息。

错误码:

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

错误码ID 错误信息
6800103 Operation not permit at current state.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioTimestampInfo: audio.AudioTimestampInfo = audioRenderer.getAudioTimestampInfoSync();
  console.info(`Current timestamp: ${audioTimestampInfo.timestamp}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

获取音频渲染器的最小缓冲区大小。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取音频渲染器的最小缓冲区大小成功,err为undefined,data为获取到的最小缓冲区大小;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let bufferSize: number;

audioRenderer.getBufferSize((err: BusinessError, data: number) => {
  if (err) {
    console.error('getBufferSize error');
  } else {
    console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
    bufferSize = data;
  }
});

getBufferSize8+

getBufferSize(): Promise<number>

获取音频渲染器的最小缓冲区大小。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回缓冲区大小。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let bufferSize: number;

audioRenderer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});

getBufferSizeSync10+

getBufferSizeSync(): number

获取音频渲染器的最小缓冲区大小。同步返回结果。

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

返回值:

类型 说明
number 返回缓冲区大小。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let bufferSize: number = 0;

try {
  bufferSize = audioRenderer.getBufferSizeSync();
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${bufferSize}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${error}`);
}

setRenderRate8+(deprecated)

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

设置音频渲染速率。使用callback异步回调。

说明: 从API version 8开始支持,从API version 11开始废弃,建议使用setSpeed替代。

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

参数:

参数名 类型 必填 说明
rate AudioRendererRate 渲染的速率。
callback AsyncCallback<void> 回调函数。当设置音频渲染速率成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err: BusinessError) => {
  if (err) {
    console.error('Failed to set params');
  } else {
    console.info('Callback invoked to indicate a successful render rate setting.');
  }
});

setRenderRate8+(deprecated)

setRenderRate(rate: AudioRendererRate): Promise<void>

设置音频渲染速率。使用Promise异步回调。

说明: 从API version 8开始支持,从API version 11开始废弃,建议使用setSpeed替代。

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

参数:

参数名 类型 必填 说明
rate AudioRendererRate 渲染的速率。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

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

setSpeed11+

setSpeed(speed: number): void

设置播放倍速。

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

参数:

参数名 类型 必填 说明
speed number 设置播放的倍速值(倍速范围:0.125-4.0)。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioRenderer.setSpeed(1.5);

getRenderRate8+(deprecated)

getRenderRate(callback: AsyncCallback<AudioRendererRate>): void

获取音频渲染速率。使用callback异步回调。

说明: 从API version 8开始支持,从API version 11开始废弃,建议使用getSpeed替代。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRendererRate> 回调函数。当获取当前渲染速率成功,err为undefined,data为获取到的当前渲染速率;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getRenderRate((err: BusinessError, renderRate: audio.AudioRendererRate) => {
  console.info(`getRenderRate: ${renderRate}`);
});

getRenderRate8+(deprecated)

getRenderRate(): Promise<AudioRendererRate>

获取音频渲染速率。使用Promise异步回调。

说明: 从API version 8开始支持,从API version 11开始废弃,建议使用getSpeed替代。

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

返回值:

类型 说明
Promise<AudioRendererRate> Promise对象,返回渲染速率。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getRenderRate().then((renderRate: audio.AudioRendererRate) => {
  console.info(`getRenderRate: ${renderRate}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getRenderRateSync10+(deprecated)

getRenderRateSync(): AudioRendererRate

获取音频渲染速率。同步返回结果。

说明: 从API version 10开始支持,从API version 11开始废弃,建议使用getSpeed替代。

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

返回值:

类型 说明
AudioRendererRate 返回渲染速率。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let renderRate: audio.AudioRendererRate = audioRenderer.getRenderRateSync();
  console.info(`getRenderRate: ${renderRate}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

getSpeed11+

getSpeed(): number

获取播放倍速。

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

返回值:

类型 说明
number 返回播放的倍速值。

示例:

let speed = audioRenderer.getSpeed();

setInterruptMode9+

setInterruptMode(mode: InterruptMode): Promise<void>

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

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

参数:

参数名 类型 必填 说明
mode InterruptMode 焦点模型。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let mode = 0;

audioRenderer.setInterruptMode(mode).then(() => {
  console.info('setInterruptMode Success!');
}).catch((err: BusinessError) => {
  console.error(`setInterruptMode Fail: ${err}`);
});

setInterruptMode9+

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

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

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

参数:

参数名 类型 必填 说明
mode InterruptMode 焦点模型。
callback AsyncCallback<void> 回调函数。当设置应用的焦点模型成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let mode = 1;

audioRenderer.setInterruptMode(mode, (err: BusinessError) => {
  if(err){
    console.error(`setInterruptMode Fail: ${err}`);
  }
  console.info('setInterruptMode Success!');
});

setInterruptModeSync10+

setInterruptModeSync(mode: InterruptMode): void

设置应用的焦点模型。同步设置。

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

参数:

参数名 类型 必填 说明
mode InterruptMode 焦点模型。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  audioRenderer.setInterruptModeSync(0);
  console.info('setInterruptMode Success!');
} catch (err) {
  let error = err as BusinessError;
  console.error(`setInterruptMode Fail: ${error}`);
}

setVolume9+

setVolume(volume: number): Promise<void>

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

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

参数:

参数名 类型 必填 说明
volume number 音量值范围为[0.0, 1.0]。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.setVolume(0.5).then(() => {
  console.info('setVolume Success!');
}).catch((err: BusinessError) => {
  console.error(`setVolume Fail: ${err}`);
});

setVolume9+

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

设置音频流的音量。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
volume number 音量值范围为[0.0, 1.0]。
callback AsyncCallback<void> 回调函数。当设置应用的音量成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.setVolume(0.5, (err: BusinessError) => {
  if(err){
    console.error(`setVolume Fail: ${err}`);
    return;
  }
  console.info('setVolume Success!');
});

getVolume12+

getVolume(): number

获取音频流的音量。同步返回结果。

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

返回值:

类型 说明
number 返回音量大小,音量值范围为[0.0, 1.0]。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioRenderer.getVolume();
  console.info(`Indicate that the volume is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the volume, error ${error}.`);
}

getMinStreamVolume10+

getMinStreamVolume(callback: AsyncCallback<number>): void

获取音频流的最小音量。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取音频流的最小音量成功,err为undefined,data为获取到的应用基于音频流的最小音量(音量范围[0, 1]);否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getMinStreamVolume((err: BusinessError, minVolume: number) => {
  if (err) {
    console.error(`getMinStreamVolume error: ${err}`);
  } else {
    console.info(`getMinStreamVolume Success! ${minVolume}`);
  }
});

getMinStreamVolume10+

getMinStreamVolume(): Promise<number>

获取音频流的最小音量。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回音频流最小音量(音量范围[0, 1])。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getMinStreamVolume().then((value: number) => {
  console.info(`Get min stream volume Success! ${value}`);
}).catch((err: BusinessError) => {
  console.error(`Get min stream volume Fail: ${err}`);
});

getMinStreamVolumeSync10+

getMinStreamVolumeSync(): number

获取音频流的最小音量。同步返回结果。

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

返回值:

类型 说明
number 返回音频流最小音量(音量范围[0, 1])。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioRenderer.getMinStreamVolumeSync();
  console.info(`Get min stream volume Success! ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get min stream volume Fail: ${error}`);
}

getMaxStreamVolume10+

getMaxStreamVolume(callback: AsyncCallback<number>): void

获取音频流的最大音量。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取音频流的最大音量成功,err为undefined,data为获取到的应用基于音频流的最大音量(音量范围[0, 1]);否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getMaxStreamVolume((err: BusinessError, maxVolume: number) => {
  if (err) {
    console.error(`getMaxStreamVolume Fail: ${err}`);
  } else {
    console.info(`getMaxStreamVolume Success! ${maxVolume}`);
  }
});

getMaxStreamVolume10+

getMaxStreamVolume(): Promise<number>

获取音频流的最大音量。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回音频流最大音量(音量范围[0, 1])。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getMaxStreamVolume().then((value: number) => {
  console.info(`Get max stream volume Success! ${value}`);
}).catch((err: BusinessError) => {
  console.error(`Get max stream volume Fail: ${err}`);
});

getMaxStreamVolumeSync10+

getMaxStreamVolumeSync(): number

获取音频流的最大音量。同步返回结果。

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

返回值:

类型 说明
number 返回音频流最大音量(音量范围[0, 1])。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioRenderer.getMaxStreamVolumeSync();
  console.info(`Get max stream volume Success! ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get max stream volume Fail: ${error}`);
}

getUnderflowCount10+

getUnderflowCount(callback: AsyncCallback<number>): void

获取当前播放音频流的欠载音频帧数量。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取当前播放音频流的欠载音频帧数量成功,err为undefined,data为获取到的当前播放音频流的欠载音频帧数量;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getUnderflowCount((err: BusinessError, underflowCount: number) => {
  if (err) {
    console.error(`getUnderflowCount Fail: ${err}`);
  } else {
    console.info(`getUnderflowCount Success! ${underflowCount}`);
  }
});

getUnderflowCount10+

getUnderflowCount(): Promise<number>

获取当前播放音频流的欠载音频帧数量。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回音频流的欠载音频帧数量。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getUnderflowCount().then((value: number) => {
  console.info(`Get underflow count Success! ${value}`);
}).catch((err: BusinessError) => {
  console.error(`Get underflow count Fail: ${err}`);
});

getUnderflowCountSync10+

getUnderflowCountSync(): number

获取当前播放音频流的欠载音频帧数量,同步返回数据。

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

返回值:

类型 说明
number 返回音频流的欠载音频帧数量。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioRenderer.getUnderflowCountSync();
  console.info(`Get underflow count Success! ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get underflow count Fail: ${error}`);
}

getCurrentOutputDevices10+

getCurrentOutputDevices(callback: AsyncCallback<AudioDeviceDescriptors>): void

获取音频流输出设备信息。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioDeviceDescriptors> 回调函数。当获取音频流输出设备信息成功,err为undefined,data为获取到的音频流输出设备信息;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getCurrentOutputDevices((err: BusinessError, deviceInfo: audio.AudioDeviceDescriptors) => {
  if (err) {
    console.error(`getCurrentOutputDevices Fail: ${err}`);
  } else {
    for (let i = 0; i < deviceInfo.length; i++) {
      console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
      console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
      console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
      console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
      console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
      console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
      console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
      console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
    }
  }
});

getCurrentOutputDevices10+

getCurrentOutputDevices(): Promise<AudioDeviceDescriptors>

获取音频流输出设备信息。使用Promise异步回调。

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

返回值:

类型 说明
Promise<AudioDeviceDescriptors> Promise对象,返回音频流的输出设备信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioRenderer.getCurrentOutputDevices().then((deviceInfo: audio.AudioDeviceDescriptors) => {
  for (let i = 0; i < deviceInfo.length; i++) {
    console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
    console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
    console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
    console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
    console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
    console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
    console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
    console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
  }
}).catch((err: BusinessError) => {
  console.error(`Get current output devices Fail: ${err}`);
});

getCurrentOutputDevicesSync10+

getCurrentOutputDevicesSync(): AudioDeviceDescriptors

获取音频流输出设备信息。同步返回结果。

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

返回值:

类型 说明
AudioDeviceDescriptors 返回音频流的输出设备信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let deviceInfo: audio.AudioDeviceDescriptors = audioRenderer.getCurrentOutputDevicesSync();
  for (let i = 0; i < deviceInfo.length; i++) {
    console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
    console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
    console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
    console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
    console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
    console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
    console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
    console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
  }
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get current output devices Fail: ${error}`);
}

setChannelBlendMode11+

setChannelBlendMode(mode: ChannelBlendMode): void

设置单双声道混合模式。同步返回结果。

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

参数:

参数名 类型 必填 说明
mode ChannelBlendMode 声道混合模式类型。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.
6800103 Operation not permit at current state.

示例:

let mode = audio.ChannelBlendMode.MODE_DEFAULT;

audioRenderer.setChannelBlendMode(mode);
console.info(`BlendMode: ${mode}`);

setVolumeWithRamp11+

setVolumeWithRamp(volume: number, duration: number): void

设置音量渐变模式。同步返回结果。

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

参数:

参数名 类型 必填 说明
volume number 渐变目标音量值,音量范围为[0.0, 1.0]。
duration number 渐变持续时间,单位为ms。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

let volume = 0.5;
let duration = 1000;

audioRenderer.setVolumeWithRamp(volume, duration);
console.info(`setVolumeWithRamp: ${volume}`);

setSilentModeAndMixWithOthers12+

setSilentModeAndMixWithOthers(on: boolean): void

设置静音并发播放模式。

当设置为true,打开静音并发播放模式,系统将让此音频流静音播放,并且不会打断其他音频流。设置为false,将关闭静音并发播放,音频流可根据系统焦点策略抢占焦点。

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

参数:

参数名 类型 必填 说明
on boolean 打开/关闭静音并发播放模式。true表示打开,false表示关闭。

示例:

audioRenderer.setSilentModeAndMixWithOthers(true);

getSilentModeAndMixWithOthers12+

getSilentModeAndMixWithOthers(): boolean

获取静音并发播放模式。

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

返回值:

类型 说明
boolean 静音并发播放模式状态。返回true表示打开,返回false表示关闭。

示例:

let on = audioRenderer.getSilentModeAndMixWithOthers();

setDefaultOutputDevice12+

setDefaultOutputDevice(deviceType: DeviceType): Promise<void>

设置默认发声设备。使用Promise异步回调。

说明:

  • 本接口仅适用于StreamUsage为语音消息、VoIP语音通话或者VoIP视频通话的场景,支持听筒、扬声器和系统默认设备。

  • 本接口允许在AudioRenderer创建后随时调用,系统记录应用设置的默认本机内置发声设备。应用启动播放时,若外接设备如蓝牙耳机或有线耳机已接入,系统优先从外接设备发声;否则,系统遵循应用设置的默认本机内置发声设备。

  • 本接口优先级低于AVCastPicker。如果使用AVCastPicker切换过发声设备,再次调用本接口切换设备将不生效。

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

参数:

参数名 类型 必填 说明
deviceType DeviceType 设备类型。
仅支持以下设备:EARPIECE(听筒)、SPEAKER(扬声器)和DEFAULT(系统默认设备)。

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.
6800103 Operation not permit at current state.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// 本接口允许在AudioRenderer创建以后的任何时间被调用。
// 未播放时调用,系统会记录应用设置的默认本机内置发声设备,当应用启动播放时从设置的默认本机内置发声设备发声。
// 正在播放时调用,在没有外接设备如蓝牙耳机/有线耳机,系统会立即切换到设置的默认本机内置发声设备发声;否则系统会先记录应用设置的默认本机内置发声设备,等外接设备移除后再切换到设置的默认本机内置发声设备发声。
audioRenderer.setDefaultOutputDevice(audio.DeviceType.SPEAKER).then(() => {
  console.info('setDefaultOutputDevice Success!');
}).catch((err: BusinessError) => {
  console.error(`setDefaultOutputDevice Fail: ${err}`);
});

on('audioInterrupt')9+

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

监听音频中断事件(当音频焦点发生变化时触发)。使用callback异步回调。

AudioRenderer对象在start事件时获取焦点,在pause、stop等事件时释放焦点,无需开发者主动申请。

调用此方法后,如果AudioRenderer对象获取焦点失败或发生中断事件(如被其他音频打断等),会收到InterruptEvent。建议应用根据InterruptEvent的信息进行进一步处理。更多信息请参阅文档音频焦点和音频会话介绍

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioInterrupt',当音频焦点状态发生变化时,触发该事件。
callback Callback<InterruptEvent> 回调函数,返回中断事件信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

let isPlaying: boolean; // 标识符,表示是否正在渲染。
let isDucked: boolean; // 标识符,表示是否被降低音量。
onAudioInterrupt();

async function onAudioInterrupt(){
  audioRenderer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => {
    // 在发生音频打断事件时,audioRenderer收到interruptEvent回调,此处根据其内容做相应处理。
    // 1. 可选:读取interruptEvent.forceType的类型,判断系统是否已强制执行相应操作。
    // 注:默认焦点策略下,INTERRUPT_HINT_RESUME为INTERRUPT_SHARE类型,其余hintType均为INTERRUPT_FORCE类型。因此对forceType可不做判断。
    // 2. 必选:读取interruptEvent.hintType的类型,做出相应的处理。
    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
      // 音频焦点事件已由系统强制执行,应用需更新自身状态及显示内容等。
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
          // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent。
          console.info('Force paused. Update playing status and stop writing');
          isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作。
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // 音频流已被停止,永久失去焦点,若想恢复渲染,需用户主动触发。
          console.info('Force stopped. Update playing status and stop writing');
          isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作。
          break;
        case audio.InterruptHint.INTERRUPT_HINT_DUCK:
          // 音频流已被降低音量渲染。
          console.info('Force ducked. Update volume status');
          isDucked = true; // 简化处理,代表应用更新音量状态的若干操作。
          break;
        case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
          // 音频流已被恢复正常音量渲染。
          console.info('Force ducked. Update volume status');
          isDucked = false; // 简化处理,代表应用更新音量状态的若干操作。
          break;
        default:
          console.info('Invalid interruptEvent');
          break;
      }
    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
      // 音频焦点事件需由应用进行操作,应用可以自主选择如何处理该事件,建议应用遵从InterruptHint提示处理。
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
          // 建议应用继续渲染(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复渲染)。
          // 由于INTERRUPT_HINT_RESUME操作需要应用主动执行,系统无法强制,故INTERRUPT_HINT_RESUME事件一定为INTERRUPT_SHARE类型。
          console.info('Resume force paused renderer or ignore');
          // 若选择继续渲染,需在此处主动执行开始渲染的若干操作。
          break;
        default:
          console.info('Invalid interruptEvent');
          break;
      }
    }
  });
}

off('audioInterrupt')18+

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

取消监听音频中断事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioInterrupt',当取消监听音频中断事件时,触发该事件。
callback Callback<InterruptEvent> 回调函数,返回中断事件信息。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRenderer.off('audioInterrupt');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let isPlaying: boolean; // 标识符,表示是否正在渲染。
let isDucked: boolean; // 标识符,表示是否被降低音量。

let audioInterruptCallback = (interruptEvent: audio.InterruptEvent) => {
  // 在发生音频打断事件时,audioRenderer收到interruptEvent回调,此处根据其内容做相应处理。
  // 1. 可选:读取interruptEvent.forceType的类型,判断系统是否已强制执行相应操作。
  // 注:默认焦点策略下,INTERRUPT_HINT_RESUME为INTERRUPT_SHARE类型,其余hintType均为INTERRUPT_FORCE类型。因此对forceType可不做判断。
  // 2. 必选:读取interruptEvent.hintType的类型,做出相应的处理。
  if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
    // 音频焦点事件已由系统强制执行,应用需更新自身状态及显示内容等。
    switch (interruptEvent.hintType) {
      case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
        // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent。
        console.info('Force paused. Update playing status and stop writing');
        isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作。
        break;
      case audio.InterruptHint.INTERRUPT_HINT_STOP:
        // 音频流已被停止,永久失去焦点,若想恢复渲染,需用户主动触发。
        console.info('Force stopped. Update playing status and stop writing');
        isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作。
        break;
      case audio.InterruptHint.INTERRUPT_HINT_DUCK:
        // 音频流已被降低音量渲染。
        console.info('Force ducked. Update volume status');
        isDucked = true; // 简化处理,代表应用更新音量状态的若干操作。
        break;
      case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
        // 音频流已被恢复正常音量渲染。
        console.info('Force ducked. Update volume status');
        isDucked = false; // 简化处理,代表应用更新音量状态的若干操作。
        break;
      default:
        console.info('Invalid interruptEvent');
        break;
    }  
  } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
    // 音频焦点事件需由应用进行操作,应用可以自主选择如何处理该事件,建议应用遵从InterruptHint提示处理。
    switch (interruptEvent.hintType) {
      case audio.InterruptHint.INTERRUPT_HINT_RESUME:
        // 建议应用继续渲染(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复渲染)。
        // 由于INTERRUPT_HINT_RESUME操作需要应用主动执行,系统无法强制,故INTERRUPT_HINT_RESUME事件一定为INTERRUPT_SHARE类型。
        console.info('Resume force paused renderer or ignore');
        // 若选择继续渲染,需在此处主动执行开始渲染的若干操作。
        break;
      default:
        console.info('Invalid interruptEvent');
        break;
    }
  }
};

audioRenderer.on('audioInterrupt', audioInterruptCallback);

audioRenderer.off('audioInterrupt', audioInterruptCallback);

on('markReach')8+

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

监听标记到达事件(当渲染的帧数到达frame参数的值时触发,仅调用一次)。使用callback异步回调。

如果将frame设置为100,当渲染帧数到达第100帧时,系统将上报信息。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'markReach',当渲染的帧数到达frame参数的值时,触发该事件。
frame number 触发事件的帧数。该值必须大于0。
callback Callback<number> 回调函数,返回frame参数的值。

示例:

audioRenderer.on('markReach', 1000, (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
});

off('markReach')8+

off(type: 'markReach', callback?: Callback<number>): void

取消监听标记到达事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'markReach',当取消监听标记到达事件时,触发该事件。
callback18+ Callback<number> 回调函数,返回frame参数的值。

示例:

// 取消该事件的所有监听。
audioRenderer.off('markReach');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let markReachCallback = (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
};

audioRenderer.on('markReach', 1000, markReachCallback);

audioRenderer.off('markReach', markReachCallback);

on('periodReach')8+

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

监听标记到达事件(每当渲染的帧数达到frame参数的值时触发,即按周期上报信息)。使用callback异步回调。

如果将frame设置为10,每渲染10帧数据均会上报信息(例如:第10帧、第20帧、第30帧......)。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'periodReach',当渲染的帧数达到frame参数的值时,触发该事件。
frame number 触发事件的帧数。该值必须大于 0。
callback Callback<number> 回调函数,返回frame参数的值。

示例:

audioRenderer.on('periodReach', 1000, (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
});

off('periodReach')8+

off(type: 'periodReach', callback?: Callback<number>): void

取消监听标记到达事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'periodReach',当取消监听标记到达事件时,触发该事件。
callback18+ Callback<number> 回调函数,返回frame参数的值。

示例:

// 取消该事件的所有监听。
audioRenderer.off('periodReach');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let periodReachCallback = (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
};

audioRenderer.on('periodReach', 1000, periodReachCallback);

audioRenderer.off('periodReach', periodReachCallback);

on('stateChange')8+

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

监听状态变化事件(当AudioRenderer的状态发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'stateChange',当AudioRenderer的状态发生变化时,触发该事件。
callback Callback<AudioState> 回调函数,返回当前音频的状态。

示例:

audioRenderer.on('stateChange', (state: audio.AudioState) => {
  if (state == 1) {
    console.info('audio renderer state is: STATE_PREPARED');
  }
  if (state == 2) {
    console.info('audio renderer state is: STATE_RUNNING');
  }
});

off('stateChange')18+

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

取消监听到达标记事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'stateChange',当取消监听到达标记事件时,触发该事件。
callback Callback<AudioState> 回调函数,返回当前音频的状态。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRenderer.off('stateChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let stateChangeCallback = (state: audio.AudioState) => {
  if (state == 1) {
    console.info('audio renderer state is: STATE_PREPARED');
  }
  if (state == 2) {
    console.info('audio renderer state is: STATE_RUNNING');
  }
};

audioRenderer.on('stateChange', stateChangeCallback);

audioRenderer.off('stateChange', stateChangeCallback);

on('outputDeviceChange')10+

on(type: 'outputDeviceChange', callback: Callback<AudioDeviceDescriptors>): void

监听音频输出设备变化事件(当音频输出设备发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'outputDeviceChange',当音频输出设备发生变化时,触发该事件。
callback Callback<AudioDeviceDescriptors> 回调函数,返回当前音频流的输出设备描述信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioRenderer.on('outputDeviceChange', (deviceInfo: audio.AudioDeviceDescriptors) => {
  console.info(`DeviceInfo id: ${deviceInfo[0].id}`);
  console.info(`DeviceInfo name: ${deviceInfo[0].name}`);
  console.info(`DeviceInfo address: ${deviceInfo[0].address}`);
});

off('outputDeviceChange')10+

off(type: 'outputDeviceChange', callback?: Callback<AudioDeviceDescriptors>): void

取消监听音频输出设备变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'outputDeviceChange',当取消监听音频输出设备变化事件时,触发该事件。
callback Callback<AudioDeviceDescriptors> 回调函数,返回当前音频流的输出设备描述信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRenderer.off('outputDeviceChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let outputDeviceChangeCallback = (deviceInfo: audio.AudioDeviceDescriptors) => {
  console.info(`DeviceInfo id: ${deviceInfo[0].id}`);
  console.info(`DeviceInfo name: ${deviceInfo[0].name}`);
  console.info(`DeviceInfo address: ${deviceInfo[0].address}`);
};

audioRenderer.on('outputDeviceChange', outputDeviceChangeCallback);

audioRenderer.off('outputDeviceChange', outputDeviceChangeCallback);

on('outputDeviceChangeWithInfo')11+

on(type: 'outputDeviceChangeWithInfo', callback: Callback<AudioStreamDeviceChangeInfo>): void

监听音频流输出设备变化及原因事件(当音频输出设备发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'outputDeviceChangeWithInfo',当音频输出设备发生变化时,触发该事件。
callback Callback<AudioStreamDeviceChangeInfo> 回调函数,返回当前音频流的输出设备描述信息及变化原因。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioRenderer.on('outputDeviceChangeWithInfo', (deviceChangeInfo: audio.AudioStreamDeviceChangeInfo) => {
  console.info(`DeviceInfo id: ${deviceChangeInfo.devices[0].id}`);
  console.info(`DeviceInfo name: ${deviceChangeInfo.devices[0].name}`);
  console.info(`DeviceInfo address: ${deviceChangeInfo.devices[0].address}`);
  console.info(`Device change reason: ${deviceChangeInfo.changeReason}`);
});

off('outputDeviceChangeWithInfo')11+

off(type: 'outputDeviceChangeWithInfo', callback?: Callback<AudioStreamDeviceChangeInfo>): void

取消监听音频流输出设备变化及原因事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'outputDeviceChangeWithInfo',当取消监听音频流输出设备变化及原因事件时,触发该事件。
callback Callback<AudioStreamDeviceChangeInfo> 回调函数,返回当前音频流的输出设备描述信息及变化原因。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRenderer.off('outputDeviceChangeWithInfo');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let outputDeviceChangeWithInfoCallback = (deviceChangeInfo: audio.AudioStreamDeviceChangeInfo) => {
  console.info(`DeviceInfo id: ${deviceChangeInfo.devices[0].id}`);
  console.info(`DeviceInfo name: ${deviceChangeInfo.devices[0].name}`);
  console.info(`DeviceInfo address: ${deviceChangeInfo.devices[0].address}`);
  console.info(`Device change reason: ${deviceChangeInfo.changeReason}`);
};

audioRenderer.on('outputDeviceChangeWithInfo', outputDeviceChangeWithInfoCallback);

audioRenderer.off('outputDeviceChangeWithInfo', outputDeviceChangeWithInfoCallback);

on('writeData')11+

on(type: 'writeData', callback: AudioRendererWriteDataCallback): void

监听音频数据写入回调事件(当需要写入音频数据时触发),使用 callback 方式返回结果。

回调函数仅用来写入音频数据,请勿在回调函数中调用AudioRenderer相关接口。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'writeData',当需要写入音频数据时,触发该事件。
callback AudioRendererWriteDataCallback 回调函数,入参代表应用接收待写入的数据缓冲区。
API version 11 不支持返回回调结果,从 API version 12 开始支持返回回调结果AudioDataCallbackResult

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
import {fileIo as fs} from '@kit.CoreFileKit';
import { common } from '@kit.AbilityKit';

class Options {
  offset?: number;
  length?: number;
}

let bufferSize: number = 0;
// 请在组件内获取context,确保this.getUIContext().getHostContext()返回结果为UIAbilityContext。
let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
let path = context.cacheDir;
// 确保该沙箱路径下存在该资源。
let filePath = path + '/StarWars10s-2C-48000-4SW.pcm';
let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
let writeDataCallback = (buffer: ArrayBuffer) => {
  let options: Options = {
    offset: bufferSize,
    length: buffer.byteLength
  };

  try {
    fs.readSync(file.fd, buffer, options);
    bufferSize += buffer.byteLength;
    // API version 11 不支持返回回调结果,从 API version 12 开始支持返回回调结果。
    return audio.AudioDataCallbackResult.VALID;
  } catch (error) {
    console.error('Error reading file:', error);
    // API version 11 不支持返回回调结果,从 API version 12 开始支持返回回调结果。
    return audio.AudioDataCallbackResult.INVALID;
  }
};

audioRenderer.on('writeData', writeDataCallback);
audioRenderer.start().then(() => {
  console.info('Renderer started');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

off('writeData')11+

off(type: 'writeData', callback?: AudioRendererWriteDataCallback): void

取消监听音频数据写入回调事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'writeData',当取消监听音频数据写入回调事件时,触发该事件。
callback AudioRendererWriteDataCallback 回调函数,入参代表应用接收待写入的数据缓冲区。
API version 11 不支持返回回调结果,从 API version 12 开始支持返回回调结果AudioDataCallbackResult

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioRenderer.off('writeData');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let writeDataCallback = (data: ArrayBuffer) => {
    console.info(`write data: ${data}`);
};

audioRenderer.on('writeData', writeDataCallback);

audioRenderer.off('writeData', writeDataCallback);

AudioCapturer8+

提供音频采集的相关接口。

在使用AudioCapturer的接口之前,需先通过createAudioCapturer获取AudioCapturer实例。

属性

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

名称 类型 只读 可选 说明
state8+ AudioState 音频采集器状态。

示例:

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

let state: audio.AudioState = audioCapturer.state;

getCapturerInfo8+

getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioCapturerInfo> 回调函数。当获取音频采集器信息成功,err为undefined,data为获取到的音频采集器信息;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getCapturerInfo((err: BusinessError, capturerInfo: audio.AudioCapturerInfo) => {
  if (err) {
    console.error('Failed to get capture info');
  } else {
    console.info('Capturer getCapturerInfo:');
    console.info(`Capturer source: ${capturerInfo.source}`);
    console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
  }
});

getCapturerInfo8+

getCapturerInfo(): Promise<AudioCapturerInfo>

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

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

返回值:

类型 说明
Promise<AudioCapturerInfo> Promise对象,返回音频采集器信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getCapturerInfo().then((audioParamsGet: audio.AudioCapturerInfo) => {
  if (audioParamsGet != undefined) {
    console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
    console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
    console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
  } else {
    console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
    console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
  }
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
})

getCapturerInfoSync10+

getCapturerInfoSync(): AudioCapturerInfo

获取音频采集器信息。同步返回结果。

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

返回值:

类型 说明
AudioCapturerInfo 返回音频采集器信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioParamsGet: audio.AudioCapturerInfo = audioCapturer.getCapturerInfoSync();
  console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
  console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${error}`);
}

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioStreamInfo> 回调函数。当获取音频采集器流信息成功,err为undefined,data为获取到的音频采集器流信息;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => {
  if (err) {
    console.error('Failed to get stream info');
  } else {
    console.info('Capturer GetStreamInfo:');
    console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
    console.info(`Capturer channel: ${streamInfo.channels}`);
    console.info(`Capturer format: ${streamInfo.sampleFormat}`);
    console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
  }
});

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

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

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

返回值:

类型 说明
Promise<AudioStreamInfo> Promise对象,返回音频流信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getStreamInfo().then((audioParamsGet: audio.AudioStreamInfo) => {
  console.info('getStreamInfo:');
  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
  console.info(`channels: ${audioParamsGet.channels}`);
  console.info(`encodingType: ${audioParamsGet.encodingType}`);
}).catch((err: BusinessError) => {
  console.error(`getStreamInfo :ERROR: ${err}`);
});

getStreamInfoSync10+

getStreamInfoSync(): AudioStreamInfo

获取音频采集器流信息。同步返回结果。

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

返回值:

类型 说明
AudioStreamInfo 返回音频流信息。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioParamsGet: audio.AudioStreamInfo = audioCapturer.getStreamInfoSync();
  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
  console.info(`channels: ${audioParamsGet.channels}`);
  console.info(`encodingType: ${audioParamsGet.encodingType}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`getStreamInfo :ERROR: ${error}`);
}

getAudioStreamId9+

getAudioStreamId(callback: AsyncCallback<number>): void

获取音频流id。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取音频流id成功,err为undefined,data为获取到的音频流id;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getAudioStreamId((err: BusinessError, streamId: number) => {
  console.info(`audioCapturer GetStreamId: ${streamId}`);
});

getAudioStreamId9+

getAudioStreamId(): Promise<number>

获取音频流id。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回音频流id。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getAudioStreamId().then((streamId: number) => {
  console.info(`audioCapturer getAudioStreamId: ${streamId}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioStreamIdSync10+

getAudioStreamIdSync(): number

获取音频流id。同步返回结果。

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

返回值:

类型 说明
number 返回音频流id。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let streamId: number = audioCapturer.getAudioStreamIdSync();
  console.info(`audioCapturer getAudioStreamIdSync: ${streamId}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

start8+

start(callback: AsyncCallback<void>): void

启动音频采集器。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当启动音频采集器成功,err为undefined,否则为错误对象。异常将返回error对象:
错误码6800301:表示包含状态检查异常、焦点抢占失败、系统处理异常(具体错误查看系统日志)。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.start((err: BusinessError) => {
  if (err) {
    console.error('Capturer start failed.');
  } else {
    console.info('Capturer start success.');
  }
});

start8+

start(): Promise<void>

启动音频采集器。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象,成功表示启动音频采集器成功。异常将返回error对象:
错误码6800301:表示包含状态检查异常、焦点抢占失败、系统处理异常(具体错误查看系统日志)。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.start().then(() => {
  console.info('AudioFrameworkRecLog: ---------START---------');
  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
    console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
  }
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
});

stop8+

stop(callback: AsyncCallback<void>): void

停止音频采集。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当停止音频采集成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.stop((err: BusinessError) => {
  if (err) {
    console.error('Capturer stop failed');
  } else {
    console.info('Capturer stopped.');
  }
});

stop8+

stop(): Promise<void>

停止音频采集。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.stop().then(() => {
  console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
  console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
  if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
    console.info('AudioFrameworkRecLog: State is Stopped:');
  }
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
});

release8+

release(callback: AsyncCallback<void>): void

释放音频采集器。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当释放音频采集器成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.release((err: BusinessError) => {
  if (err) {
    console.error('capturer release failed');
  } else {
    console.info('capturer released.');
  }
});

release8+

release(): Promise<void>

释放音频采集器。使用Promise异步回调。

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

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.release().then(() => {
  console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
  console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
  console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
});

read8+(deprecated)

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

读入缓冲区。使用callback异步回调。

说明: 从API version 8开始支持,从API version 11开始废弃,建议使用on('readData')替代。

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

参数:

参数名 类型 必填 说明
size number 读入的字节数。
isBlockingRead boolean 是否阻塞读操作。true表示阻塞,false表示不阻塞。
callback AsyncCallback<ArrayBuffer> 回调函数。当读入缓冲区成功,err为undefined,data为获取到的缓冲区;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let bufferSize: number = 0;

audioCapturer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
});

audioCapturer.read(bufferSize, true, (err: BusinessError, buffer: ArrayBuffer) => {
  if (!err) {
    console.info('Success in reading the buffer data');
  }
});

read8+(deprecated)

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

读入缓冲区。使用Promise异步回调。

说明: 从API version 8开始支持,从API version 11开始废弃,建议使用on('readData')替代。

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

参数:

参数名 类型 必填 说明
size number 读入的字节数。
isBlockingRead boolean 是否阻塞读操作。true表示阻塞,false表示不阻塞。

返回值:

类型 说明
Promise<ArrayBuffer> Promise对象,返回读取的缓冲区数据。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let bufferSize: number = 0;

audioCapturer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
});
console.info(`Buffer size: ${bufferSize}`);

audioCapturer.read(bufferSize, true).then((buffer: ArrayBuffer) => {
  console.info('buffer read successfully');
}).catch((err: BusinessError) => {
  console.error(`ERROR : ${err}`);
});

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

获取当前录制位置的时间戳(从1970年1月1日开始),单位为纳秒。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取时间戳成功,err为undefined,data为获取到的时间戳;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getAudioTime((err: BusinessError, timestamp: number) => {
  console.info(`Current timestamp: ${timestamp}`);
});

getAudioTime8+

getAudioTime(): Promise<number>

获取当前录制位置的时间戳(从1970年1月1日开始),单位为纳秒。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回时间戳(从1970年1月1日开始),单位为纳秒。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getAudioTime().then((audioTime: number) => {
  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
});

getAudioTimeSync10+

getAudioTimeSync(): number

获取当前录制位置的时间戳(从1970年1月1日开始),单位为纳秒。同步返回结果。

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

返回值:

类型 说明
number 返回时间戳。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioTime: number = audioCapturer.getAudioTimeSync();
  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : Success ${audioTime}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : ERROR : ${error}`);
}

getAudioTimestampInfo19+

getAudioTimestampInfo(): Promise<AudioTimestampInfo>

获取音频流时间戳和当前数据帧位置信息。使用Promise异步回调。

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

返回值:

类型 描述
Promise<AudioTimestampInfo> Promise对象,返回音频流时间戳和当前数据帧位置信息。

错误码:

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

错误码ID 错误信息
6800103 Operation not permit at current state.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getAudioTimestampInfo().then((audioTimestampInfo: audio.AudioTimestampInfo) => {
  console.info(`Current timestamp: ${audioTimestampInfo.timestamp}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioTimestampInfoSync19+

getAudioTimestampInfoSync(): AudioTimestampInfo

获取音频流时间戳和当前数据帧位置信息。同步返回结果。

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

返回值:

类型 描述
AudioTimestampInfo 返回音频流时间戳和当前数据帧位置信息。

错误码:

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

错误码ID 错误信息
6800103 Operation not permit at current state.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let audioTimestampInfo: audio.AudioTimestampInfo = audioCapturer.getAudioTimestampInfoSync();
  console.info(`Current timestamp: ${audioTimestampInfo.timestamp}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

获取采集器合理的最小缓冲区大小。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数。当获取采集器合理的最小缓冲区大小成功,err为undefined,data为获取到的采集器合理的最小缓冲区大小;否则为错误对象。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getBufferSize((err: BusinessError, bufferSize: number) => {
  if (!err) {
    console.info(`BufferSize : ${bufferSize}`);
    audioCapturer.read(bufferSize, true).then((buffer: ArrayBuffer) => {
      console.info(`Buffer read is ${buffer.byteLength}`);
    }).catch((err: BusinessError) => {
      console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
    });
  }
});

getBufferSize8+

getBufferSize(): Promise<number>

获取采集器合理的最小缓冲区大小。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回缓冲区大小。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let bufferSize: number = 0;

audioCapturer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
  bufferSize = data;
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
});

getBufferSizeSync10+

getBufferSizeSync(): number

获取采集器合理的最小缓冲区大小。同步返回结果。

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

返回值:

类型 说明
number 返回缓冲区大小。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let bufferSize: number = 0;

try {
  bufferSize = audioCapturer.getBufferSizeSync();
  console.info(`AudioFrameworkRecLog: getBufferSizeSync :SUCCESS ${bufferSize}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRecLog: getBufferSizeSync :ERROR : ${error}`);
}

getCurrentInputDevices11+

getCurrentInputDevices(): AudioDeviceDescriptors

获取录音流输入设备信息。同步返回结果。

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

返回值:

类型 说明
AudioDeviceDescriptors 同步接口,返回设备属性数组类型数据。

示例:

let deviceDescriptors: audio.AudioDeviceDescriptors = audioCapturer.getCurrentInputDevices();
console.info(`Device id: ${deviceDescriptors[0].id}`);
console.info(`Device type: ${deviceDescriptors[0].deviceType}`);
console.info(`Device role: ${deviceDescriptors[0].deviceRole}`);
console.info(`Device name: ${deviceDescriptors[0].name}`);
console.info(`Device address: ${deviceDescriptors[0].address}`);
console.info(`Device samplerates: ${deviceDescriptors[0].sampleRates[0]}`);
console.info(`Device channelcounts: ${deviceDescriptors[0].channelCounts[0]}`);
console.info(`Device channelmask: ${deviceDescriptors[0].channelMasks[0]}`);
if (deviceDescriptors[0].encodingTypes) {
  console.info(`Device encodingTypes: ${deviceDescriptors[0].encodingTypes[0]}`);
}

getCurrentAudioCapturerChangeInfo11+

getCurrentAudioCapturerChangeInfo(): AudioCapturerChangeInfo

获取录音流配置。同步返回结果。

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

返回值:

类型 说明
AudioCapturerChangeInfo 同步接口,返回描述音频采集器更改信息。

示例:

let info: audio.AudioCapturerChangeInfo = audioCapturer.getCurrentAudioCapturerChangeInfo();
console.info(`Info streamId: ${info.streamId}`);
console.info(`Info source: ${info.capturerInfo.source}`);
console.info(`Info capturerFlags: ${info.capturerInfo.capturerFlags}`);
console.info(`Info muted: ${info.muted}`);
console.info(`Info type: ${info.deviceDescriptors[0].deviceType}`);
console.info(`Info role: ${info.deviceDescriptors[0].deviceRole}`);
console.info(`Info name: ${info.deviceDescriptors[0].name}`);
console.info(`Info address: ${info.deviceDescriptors[0].address}`);
console.info(`Info samplerates: ${info.deviceDescriptors[0].sampleRates[0]}`);
console.info(`Info channelcounts: ${info.deviceDescriptors[0].channelCounts[0]}`);
console.info(`Info channelmask: ${info.deviceDescriptors[0].channelMasks[0]}`);
if (info.deviceDescriptors[0].encodingTypes) {
  console.info(`Device encodingTypes: ${info.deviceDescriptors[0].encodingTypes[0]}`);
}

on('audioInterrupt')10+

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

监听音频中断事件(当音频焦点发生变化时触发)。使用callback异步回调。

AudioCapturer对象在start事件时获取焦点,在pause、stop等事件时释放焦点,无需开发者主动申请。

调用此方法后,如果AudioCapturer对象获取焦点失败或发生中断事件(如被其他音频打断等),会收到InterruptEvent。建议应用根据InterruptEvent的信息进行进一步处理。更多信息请参阅文档音频焦点和音频会话介绍

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioInterrupt',当音频焦点状态发生变化时,触发该事件。
callback Callback<InterruptEvent> 回调函数,返回中断事件信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

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

let isCapturing: boolean; // 标识符,表示是否正在采集。
onAudioInterrupt();

async function onAudioInterrupt(){
  audioCapturer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => {
    // 在发生音频打断事件时,audioCapturer收到interruptEvent回调,此处根据其内容做相应处理。
    // 1、可选:读取interruptEvent.forceType的类型,判断系统是否已强制执行相应操作。
    // 注:默认焦点策略下,INTERRUPT_HINT_RESUME为INTERRUPT_SHARE类型,其余hintType均为INTERRUPT_FORCE类型。因此对forceType可不做判断。
    // 2、必选:读取interruptEvent.hintType的类型,做出相应的处理。
    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
      // 音频焦点事件已由系统强制执行,应用需更新自身状态及显示内容等。
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
          // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent。
          console.info('Force paused. Update capturing status and stop reading');
          isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作。
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // 音频流已被停止,永久失去焦点,若想恢复采集,需用户主动触发。
          console.info('Force stopped. Update capturing status and stop reading');
          isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作。
          break;
        default:
          console.info('Invalid interruptEvent');
          break;
      }
    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
      // 音频焦点事件需由应用进行操作,应用可以自主选择如何处理该事件,建议应用遵从InterruptHint提示处理。
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
          // 建议应用继续采集(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复采集)。
          // 由于INTERRUPT_HINT_RESUME操作需要应用主动执行,系统无法强制,故INTERRUPT_HINT_RESUME事件一定为INTERRUPT_SHARE类型。
          console.info('Resume force paused renderer or ignore');
          // 若选择继续采集,需在此处主动执行开始采集的若干操作。
          break;
        default:
          console.info('Invalid interruptEvent');
          break;
      }
    }
  });
}

off('audioInterrupt')10+

off(type: 'audioInterrupt'): void

取消监听音频中断事件。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioInterrupt',当取消监听音频中断事件时,触发该事件。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioCapturer.off('audioInterrupt');

on('inputDeviceChange')11+

on(type: 'inputDeviceChange', callback: Callback<AudioDeviceDescriptors>): void

监听音频输入设备变化事件(当音频输入设备发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'inputDeviceChange',当音频输入设备发生变化时,触发该事件。
callback Callback<AudioDeviceDescriptors> 回调函数,返回监听的音频输入设备变化(返回数据为切换后的设备信息)。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioCapturer.on('inputDeviceChange', (deviceChangeInfo: audio.AudioDeviceDescriptors) => {
  console.info(`inputDevice id: ${deviceChangeInfo[0].id}`);
  console.info(`inputDevice deviceRole: ${deviceChangeInfo[0].deviceRole}`);
  console.info(`inputDevice deviceType: ${deviceChangeInfo[0].deviceType}`);
});

off('inputDeviceChange')11+

off(type: 'inputDeviceChange', callback?: Callback<AudioDeviceDescriptors>): void

取消监听音频输入设备更改事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'inputDeviceChange',当取消监听音频输入设备更改事件时,触发该事件。
callback Callback<AudioDeviceDescriptors> 回调函数,返回监听的音频输入设备信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioCapturer.off('inputDeviceChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let inputDeviceChangeCallback = (deviceChangeInfo: audio.AudioDeviceDescriptors) => {
  console.info(`inputDevice id: ${deviceChangeInfo[0].id}`);
  console.info(`inputDevice deviceRole: ${deviceChangeInfo[0].deviceRole}`);
  console.info(`inputDevice deviceType: ${deviceChangeInfo[0].deviceType}`);
};

audioCapturer.on('inputDeviceChange', inputDeviceChangeCallback);

audioCapturer.off('inputDeviceChange', inputDeviceChangeCallback);

on('audioCapturerChange')11+

on(type: 'audioCapturerChange', callback: Callback<AudioCapturerChangeInfo>): void

监听录音流配置变化事件(当音频录制流状态变化、设备变化时触发)。使用callback异步回调。订阅内部是异步实现,是非精确回调,在录音流配置变化的同时注册回调,收到的返回结果存在变化可能性。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioCapturerChange',当音频录制流状态变化、设备变化时,触发该事件。
callback Callback<AudioCapturerChangeInfo> 回调函数,录音流配置或状态变化时返回监听的录音流当前配置和状态信息。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

audioCapturer.on('audioCapturerChange', (capturerChangeInfo: audio.AudioCapturerChangeInfo) => {
  console.info(`audioCapturerChange id: ${capturerChangeInfo[0].id}`);
  console.info(`audioCapturerChange deviceRole: ${capturerChangeInfo[0].deviceRole}`);
  console.info(`audioCapturerChange deviceType: ${capturerChangeInfo[0].deviceType}`);
});

off('audioCapturerChange')11+

off(type: 'audioCapturerChange', callback?: Callback<AudioCapturerChangeInfo>): void

取消监听录音流配置变化事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'audioCapturerChange',当取消监听录音流配置变化事件时,触发该事件。
callback Callback<AudioCapturerChangeInfo> 回调函数,返回取消监听的录音流配置或状态变化。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioCapturer.off('audioCapturerChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let audioCapturerChangeCallback = (capturerChangeInfo: audio.AudioCapturerChangeInfo) => {
  console.info(`audioCapturerChange id: ${capturerChangeInfo[0].id}`);
  console.info(`audioCapturerChange deviceRole: ${capturerChangeInfo[0].deviceRole}`);
  console.info(`audioCapturerChange deviceType: ${capturerChangeInfo[0].deviceType}`);
};

audioCapturer.on('audioCapturerChange', audioCapturerChangeCallback);

audioCapturer.off('audioCapturerChange', audioCapturerChangeCallback);

on('markReach')8+

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

监听标记到达事件(当采集的帧数达到frame参数的值时触发,仅调用一次)。使用callback异步回调。

如果将frame设置为100,当采集帧数到达第100帧时,系统将上报信息。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'markReach',当采集的帧数达到frame参数的值时,触发该事件。
frame number 触发事件的帧数。该值必须大于0。
callback Callback<number> 回调函数,返回frame参数的值。

示例:

audioCapturer.on('markReach', 1000, (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
});

off('markReach')8+

off(type: 'markReach', callback?: Callback<number>): void

取消监听标记到达事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'markReach',当取消监听标记到达事件时,触发该事件。
callback18+ Callback<number> 回调函数,返回frame参数的值。

示例:

// 取消该事件的所有监听。
audioCapturer.off('markReach');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let markReachCallback = (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
};

audioCapturer.on('markReach', 1000, markReachCallback);

audioCapturer.off('markReach', markReachCallback);

on('periodReach')8+

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

监听标记到达事件(当采集的帧数达到frame参数的值时触发,即按周期上报信息)。使用callback异步回调。

如果将frame设置为10,每渲染10帧数据均会上报信息(例如:第10帧、第20帧、第30帧......)。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'periodReach',当采集的帧数达到frame参数的值时,触发该事件。
frame number 触发事件的帧数。该值必须大于0。
callback Callback<number> 回调函数,返回frame参数的值。

示例:

audioCapturer.on('periodReach', 1000, (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
});

off('periodReach')8+

off(type: 'periodReach', callback?: Callback<number>): void

取消监听标记到达事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'periodReach',当取消监听标记到达事件时,触发该事件。
callback18+ Callback<number> 回调函数,返回frame参数的值。

示例:

// 取消该事件的所有监听。
audioCapturer.off('periodReach');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let periodReachCallback = (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
};

audioCapturer.on('periodReach', 1000, periodReachCallback);

audioCapturer.off('periodReach', periodReachCallback);

on('stateChange')8+

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

监听状态变化事件(当AudioCapturer状态发生变化时触发)。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'stateChange',当AudioCapturer状态发生变化时,触发该事件。
callback Callback<AudioState> 回调函数,返回当前音频的状态。

示例:

audioCapturer.on('stateChange', (state: audio.AudioState) => {
  if (state == 1) {
    console.info('audio capturer state is: STATE_PREPARED');
  }
  if (state == 2) {
    console.info('audio capturer state is: STATE_RUNNING');
  }
});

off('stateChange')18+

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

取消监听到达标记事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'stateChange',当取消监听到达标记事件时,触发该事件。
callback Callback<AudioState> 回调函数,返回当前音频的状态。

错误码:

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

错误码ID 错误信息
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioCapturer.off('stateChange');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let stateChangeCallback = (state: audio.AudioState) => {
  if (state == 1) {
    console.info('audio renderer state is: STATE_PREPARED');
  }
  if (state == 2) {
    console.info('audio renderer state is: STATE_RUNNING');
  }
};

audioCapturer.on('stateChange', stateChangeCallback);

audioCapturer.off('stateChange', stateChangeCallback);

on('readData')11+

on(type: 'readData', callback: Callback<ArrayBuffer>): void

监听音频数据读取回调事件(当需要读取音频流数据时触发)。使用callback异步回调。

回调函数仅用来读取音频数据,请勿在回调函数中调用AudioCapturer相关接口。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'readData',当需要读取音频流数据时,触发该事件。
callback Callback<ArrayBuffer> 回调函数,返回读到的数据缓冲区。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo as fs } from '@kit.CoreFileKit';
import { common } from '@kit.AbilityKit';

class Options {
  offset?: number;
  length?: number;
}

let bufferSize: number = 0;
// 请在组件内获取context,确保this.getUIContext().getHostContext()返回结果为UIAbilityContext。
let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
let path = context.cacheDir;
// 确保该沙箱路径下存在该资源。
let filePath = path + '/StarWars10s-2C-48000-4SW.pcm';
let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let readDataCallback = (buffer: ArrayBuffer) => {
  let options: Options = {
    offset: bufferSize,
    length: buffer.byteLength
  };
  fs.writeSync(file.fd, buffer, options);
  bufferSize += buffer.byteLength;
}

audioCapturer.on('readData', readDataCallback);

audioCapturer.start((err: BusinessError) => {
  if (err) {
    console.error('Capturer start failed.');
  } else {
    console.info('Capturer start success.');
  }
});

off('readData')11+

off(type: 'readData', callback?: Callback<ArrayBuffer>): void

取消监听音频数据读取回调事件。使用callback异步回调。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为'readData',当取消监听音频数据读取回调事件时,触发该事件。
callback Callback<ArrayBuffer> 回调函数,返回读到的数据缓冲区。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档Audio错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types.
6800101 Parameter verification failed.

示例:

// 取消该事件的所有监听。
audioCapturer.off('readData');

// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
let readDataCallback = (data: ArrayBuffer) => {
    console.info(`read data: ${data}`);
};

audioCapturer.on('readData', readDataCallback);

audioCapturer.off('readData', readDataCallback);

getOverflowCount12+

getOverflowCount(): Promise<number>

获取当前录制音频流的过载音频帧数量。使用Promise异步回调。

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

返回值:

类型 说明
Promise<number> Promise对象,返回音频流的过载音频帧数量。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

audioCapturer.getOverflowCount().then((value: number) => {
  console.info(`Get overflow count Success! ${value}`);
}).catch((err: BusinessError) => {
  console.error(`Get overflow count Fail: ${err}`);
});

getOverflowCountSync12+

getOverflowCountSync(): number

获取当前录制音频流的过载音频帧数量。同步返回数据。

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

返回值:

类型 说明
number 返回音频流的过载音频帧数量。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

try {
  let value: number = audioCapturer.getOverflowCountSync();
  console.info(`Get overflow count Success! ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get overflow count Fail: ${error}`);
}

ActiveDeviceType(deprecated)

表示活跃设备类型的枚举。

说明:

从API version 7开始支持,从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 焦点获取/释放是否成功。true表示焦点获取/释放成功,false表示焦点获得/释放失败。