音频管理


音频管理

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

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

  • AudioManager:音频管理。
  • AudioRenderer:音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。
  • AudioCapturer:音频采集,用于录制PCM音频数据。
  • TonePlayer:用于管理和播放DTMF(Dual Tone Multi Frequency,双音多频)音调,如拨号音、通话回铃音等。

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

导入模块

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

常量

系统接口: 该接口为系统接口

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

名称 类型 可读 可写 说明
LOCAL_NETWORK_ID9+ string 本地设备网络id。

示例:

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

const localNetworkId = audio.LOCAL_NETWORK_ID;
1
2
3

audio.getAudioManager

getAudioManager(): AudioManager

获取音频管理器。

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

返回值:

类型 说明
AudioManager 音频管理类。

示例:

let audioManager = audio.getAudioManager();
1

audio.createAudioRenderer8+

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

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

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

参数:

参数名 类型 必填 说明
options AudioRendererOptions 配置渲染器。
callback AsyncCallback<AudioRenderer> 音频渲染器对象。

示例:

import audio from '@ohos.multimedia.audio';
let audioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

let audioRendererInfo = {
  content: audio.ContentType.CONTENT_TYPE_SPEECH,
  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
  rendererFlags: 0
}

let 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;
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer>

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

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

参数:

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

返回值:

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

示例:

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

let audioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

let audioRendererInfo = {
  content: audio.ContentType.CONTENT_TYPE_SPEECH,
  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
  rendererFlags: 0
}

let audioRendererOptions = {
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo
}

let audioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data) => {
  audioRenderer = data;
  console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
}).catch((err) => {
  console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

audio.createAudioCapturer8+

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

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

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

需要权限: ohos.permission.MICROPHONE

参数:

参数名 类型 必填 说明
options AudioCapturerOptions 配置音频采集器。
callback AsyncCallback<AudioCapturer> 音频采集器对象。

示例:

import audio from '@ohos.multimedia.audio';
let audioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_2,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

let audioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
}

let 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;
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer>

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

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

需要权限: ohos.permission.MICROPHONE

参数:

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

返回值:

类型 说明
Promise<AudioCapturer> 音频采集器对象

示例:

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

let audioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_2,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

let audioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
}

let audioCapturerOptions = {
  streamInfo: audioStreamInfo,
  capturerInfo: audioCapturerInfo
}

let audioCapturer;
audio.createAudioCapturer(audioCapturerOptions).then((data) => {
  audioCapturer = data;
  console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
}).catch((err) => {
  console.error(`AudioCapturer Created : ERROR : ${err}`);
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

audio.createTonePlayer9+

createTonePlayer(options: AudioRendererInfo, callback: AsyncCallback<TonePlayer>): void

创建DTMF播放器。使用callback方式异步返回结果。

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

参数:

参数名 类型 必填 说明
options AudioRendererInfo 配置音频渲染器信息。
callback AsyncCallback<TonePlayer> 回调函数,回调返回音频渲染器对象。

示例:

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

let audioRendererInfo = {
  "contentType": audio.ContentType.CONTENT_TYPE_MUSIC,
  "streamUsage": audio.StreamUsage.STREAM_USAGE_MEDIA,
  "rendererFlags": 0
}
let tonePlayer;
audio.createTonePlayer(audioRendererInfo, (err, data) => {
  console.info(`callback call createTonePlayer: audioRendererInfo: ${audioRendererInfo}`);
  if (err) {
    console.error(`callback call createTonePlayer return error: ${err.message}`);
  } else {
    console.info(`callback call createTonePlayer return data: ${data}`);
    tonePlayer = data;
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

audio.createTonePlayer9+

createTonePlayer(options: AudioRendererInfo): Promise<TonePlayer>

创建DTMF播放器。使用Promise方式异步返回结果。

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

参数:

参数名 类型 必填 说明
options AudioRendererInfo 配置音频渲染器信息。

返回值:

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

示例:

import audio from '@ohos.multimedia.audio';
async function createTonePlayer(){
  let audioRendererInfo = {
    "contentType": audio.ContentType.CONTENT_TYPE_MUSIC,
    "streamUsage": audio.StreamUsage.STREAM_USAGE_MEDIA,
    "rendererFlags": 0
  }
  let tonePlayer = await audio.createTonePlayer(audioRendererInfo);
}
1
2
3
4
5
6
7
8
9

AudioVolumeType

枚举,音频流类型。

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

名称 默认值 描述
VOICE_CALL8+ 0 语音电话。
RINGTONE 2 铃声。
MEDIA 3 媒体。
VOICE_ASSISTANT8+ 9 语音助手。
ALL9+ 100 所有公共音频流。
此接口为系统接口,三方应用不支持调用。

InterruptMode9+

枚举,焦点模型。

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

名称 默认值 描述
SHARE_MODE 0 共享焦点模式。
INDEPENDENT_MODE 1 独立焦点模式。

DeviceFlag

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

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

名称 默认值 描述
NONE_DEVICES_FLAG9+ 0
此接口为系统接口,三方应用不支持调用。
OUTPUT_DEVICES_FLAG 1 输出设备。
INPUT_DEVICES_FLAG 2 输入设备。
ALL_DEVICES_FLAG 3 所有设备。
DISTRIBUTED_OUTPUT_DEVICES_FLAG9+ 4 分布式输出设备。
此接口为系统接口,三方应用不支持调用。
DISTRIBUTED_INPUT_DEVICES_FLAG9+ 8 分布式输入设备。
此接口为系统接口,三方应用不支持调用。
ALL_DISTRIBUTED_DEVICES_FLAG9+ 12 分布式输入和输出设备。
此接口为系统接口,三方应用不支持调用。

DeviceRole

枚举,设备角色。

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

名称 默认值 描述
INPUT_DEVICE 1 输入设备角色。
OUTPUT_DEVICE 2 输出设备角色。

DeviceType

枚举,设备类型。

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

名称 默认值 描述
INVALID 0 无效设备。
EARPIECE 1 听筒。
SPEAKER 2 扬声器。
WIRED_HEADSET 3 有线耳机,带麦克风。
WIRED_HEADPHONES 4 有线耳机,无麦克风。
BLUETOOTH_SCO 7 蓝牙设备SCO(Synchronous Connection Oriented)连接。
BLUETOOTH_A2DP 8 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。
MIC 15 麦克风。
USB_HEADSET 22 USB耳机,带麦克风。
DEFAULT9+ 1000 默认设备类型。

ActiveDeviceType

枚举,活跃设备类型。

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

名称 默认值 描述
SPEAKER 2 扬声器。
BLUETOOTH_SCO 7 蓝牙设备SCO(Synchronous Connection Oriented)连接。

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位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。

AudioChannel8+

枚举, 音频声道。

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

名称 默认值 描述
CHANNEL_1 0x1 << 0 单声道。
CHANNEL_2 0x1 << 1 双声道。

AudioSamplingRate8+

枚举,音频采样率。

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

名称 默认值 描述
SAMPLE_RATE_8000 8000 采样率为8000。
SAMPLE_RATE_11025 11025 采样率为11025。
SAMPLE_RATE_12000 12000 采样率为12000。
SAMPLE_RATE_16000 16000 采样率为16000。
SAMPLE_RATE_22050 22050 采样率为22050。
SAMPLE_RATE_24000 24000 采样率为24000。
SAMPLE_RATE_32000 32000 采样率为32000。
SAMPLE_RATE_44100 44100 采样率为44100。
SAMPLE_RATE_48000 48000 采样率为48000。
SAMPLE_RATE_64000 64000 采样率为64000。
SAMPLE_RATE_96000 96000 采样率为96000。

AudioEncodingType8+

枚举,音频编码类型。

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

名称 默认值 描述
ENCODING_TYPE_INVALID -1 无效。
ENCODING_TYPE_RAW 0 PCM编码。

ContentType

枚举,音频内容类型。

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

名称 默认值 描述
CONTENT_TYPE_UNKNOWN 0 未知类型。
CONTENT_TYPE_SPEECH 1 语音。
CONTENT_TYPE_MUSIC 2 音乐。
CONTENT_TYPE_MOVIE 3 电影。
CONTENT_TYPE_SONIFICATION 4 加密类型。
CONTENT_TYPE_RINGTONE8+ 5 铃声。

StreamUsage

枚举,音频流使用类型。

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

名称 默认值 描述
STREAM_USAGE_UNKNOWN 0 未知类型。
STREAM_USAGE_MEDIA 1 音频。
STREAM_USAGE_VOICE_COMMUNICATION 2 语音通信。
STREAM_USAGE_VOICE_ASSISTANT9+ 3 语音播报。
STREAM_USAGE_NOTIFICATION_RINGTONE 6 通知铃声。

FocusType9+

表示焦点类型的枚举。

系统接口: 该接口为系统接口

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

名称 默认值 描述
FOCUS_TYPE_RECORDING 0 在录制场景使用,可打断其他音频。

AudioState8+

枚举,音频状态。

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

名称 默认值 描述
STATE_INVALID -1 无效状态。
STATE_NEW 0 创建新实例状态。
STATE_PREPARED 1 准备状态。
STATE_RUNNING 2 可运行状态。
STATE_STOPPED 3 停止状态。
STATE_RELEASED 4 释放状态。
STATE_PAUSED 5 暂停状态。

AudioRendererRate8+

枚举,音频渲染速度。

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

名称 默认值 描述
RENDER_RATE_NORMAL 0 正常速度。
RENDER_RATE_DOUBLE 1 2倍速。
RENDER_RATE_HALF 2 0.5倍数。

InterruptType

枚举,中断类型。

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

名称 默认值 描述
INTERRUPT_TYPE_BEGIN 1 音频播放中断事件开始。
INTERRUPT_TYPE_END 2 音频播放中断事件结束。

InterruptForceType9+

枚举,强制打断类型。

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

名称 默认值 描述
INTERRUPT_FORCE 0 由系统进行操作,强制打断音频播放。
INTERRUPT_SHARE 1 由应用进行操作,可以选择打断或忽略。

InterruptHint

枚举,中断提示。

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

名称 默认值 描述
INTERRUPT_HINT_NONE8+ 0 无提示。
INTERRUPT_HINT_RESUME 1 提示音频恢复。
INTERRUPT_HINT_PAUSE 2 提示音频暂停。
INTERRUPT_HINT_STOP 3 提示音频停止。
INTERRUPT_HINT_DUCK 4 提示音频躲避。(躲避:音量减弱,而不会停止)
INTERRUPT_HINT_UNDUCK8+ 5 提示音量恢复。

InterruptActionType

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

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

名称 默认值 描述
TYPE_ACTIVATED 0 表示触发焦点事件。
TYPE_INTERRUPT 1 表示音频打断事件。

AudioStreamInfo8+

音频流信息。

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

名称 类型 必填 说明
samplingRate AudioSamplingRate 音频文件的采样率。
channels AudioChannel 音频文件的通道数。
sampleFormat AudioSampleFormat 音频采样格式。
encodingType AudioEncodingType 音频编码格式。

AudioRendererInfo8+

音频渲染器信息。

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

名称 类型 必填 说明
content ContentType 媒体类型。
usage StreamUsage 音频流使用类型。
rendererFlags number 音频渲染器标志。

AudioRendererOptions8+

音频渲染器选项信息。

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

名称 类型 必填 说明
streamInfo AudioStreamInfo 表示音频流信息。
rendererInfo AudioRendererInfo 表示渲染器信息。

InterruptEvent9+

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

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

名称 类型 必填 说明
eventType InterruptType 中断事件类型,开始或是结束。
forceType InterruptForceType 操作是由系统执行或是由应用程序执行。
hintType InterruptHint 中断提示。

AudioInterrupt

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

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

名称 类型 必填 说明
streamUsage StreamUsage 音频流使用类型。
contentType ContentType 音频打断媒体类型。
pauseWhenDucked boolean 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。

InterruptAction

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

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

名称 类型 必填 说明
actionType InterruptActionType 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。
type InterruptType 打断事件类型。
hint InterruptHint 打断事件提示。
activated boolean 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。

VolumeEvent8+

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

系统接口: 该接口为系统接口

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

名称 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volume number 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。
updateUi boolean 在UI中显示音量变化。
volumeGroupId9+ number 音量组id。可用于getGroupManager入参
networkId9+ string 网络id。

MicStateChangeEvent9+

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

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

名称 类型 必填 说明
mute boolean 回调返回系统麦克风静音状态,true为静音,false为非静音。

ConnectType9+

枚举,设备连接类型。

系统接口: 该接口为系统接口

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

名称 默认值 描述
CONNECT_TYPE_LOCAL 1 本地设备。
CONNECT_TYPE_DISTRIBUTED 2 分布式设备。

VolumeGroupInfo9+

音量组信息。

系统接口: 该接口为系统接口

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

名称 类型 可读 可写 说明
networkId9+ string 组网络id。
groupId9+ number 组设备组id。
mappingId9+ number 组映射id。
groupName9+ number 组名。
type9+ ConnectType 连接设备类型。

VolumeGroupInfos9+

音量组信息,数组类型,为VolumeGroupInfo的数组,只读。

系统接口: 该接口为系统接口

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

示例:

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

async function getVolumeGroupInfos(){
  let volumegroupinfos = await audio.getAudioManager().getVolumeGroups(audio.LOCAL_NETWORK_ID);
  console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos))
}
getVolumeGroupInfos();
1
2
3
4
5
6
7

DeviceChangeAction

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

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

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

DeviceChangeType

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

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

名称 默认值 描述
CONNECT 0 设备连接。
DISCONNECT 1 断开设备连接。

AudioCapturerOptions8+

音频采集器选项信息。

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

名称 类型 必填 说明
streamInfo AudioStreamInfo 表示音频流信息。
capturerInfo AudioCapturerInfo 表示采集器信息。

AudioCapturerInfo8+

描述音频采集器信息。

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

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

SourceType8+

枚举,音源类型。

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

名称 默认值 描述
SOURCE_TYPE_INVALID -1 无效的音频源。
SOURCE_TYPE_MIC 0 Mic音频源。
SOURCE_TYPE_VOICE_RECOGNITION9+ 1 语音识别源。
SOURCE_TYPE_VOICE_COMMUNICATION 7 语音通话场景的音频源。

AudioScene8+

枚举,音频场景。

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

名称 默认值 描述
AUDIO_SCENE_DEFAULT 0 默认音频场景。
AUDIO_SCENE_RINGING 1 响铃模式。
此接口为系统接口,三方应用不支持调用。
AUDIO_SCENE_PHONE_CALL 2 电话模式。
此接口为系统接口,三方应用不支持调用。
AUDIO_SCENE_VOICE_CHAT 3 语音聊天模式。

AudioManager

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

getRoutingManager9+

getRoutingManager(callback: AsyncCallback<AudioRoutingManager>): void

获取AudioRoutingManager对象,使用callback方式异步返回结果。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRoutingManager> 回调,返回AudioRoutingManager对象。

示例:

audioManager.getRoutingManager((err, callback) => {
  if (err) {
    console.error(`Result ERROR: ${err}`);
  }
  console.info('getRoutingManager Callback SUCCESS.');
  let audioRoutingManager;
  audioRoutingManager = callback;
});
1
2
3
4
5
6
7
8

getRoutingManager9+

getRoutingManager(): Promise<AudioRoutingManager>

获取AudioRoutingManager对象,使用Promise方式异步返回结果。

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

返回值:

类型 说明
Promise<AudioRoutingManager> Promise回调返回AudioRoutingManager对象。

示例:

let audioManager = audio.getAudioManager();
async function getRoutingManager(){
  await audioManager.getRoutingManager().then((value) => {
    let routingManager = value;
    console.info('getRoutingManager Promise SUCCESS.');
  }).catch((err) => {
    console.error(`Result ERROR: ${err}`);
  });
}
1
2
3
4
5
6
7
8
9

setVolume

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volume number 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。
callback AsyncCallback<void> 回调表示成功还是失败。

示例:

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

setVolume

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

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

参数:

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

返回值:

类型 说明
Promise<void> Promise回调表示成功还是失败。

示例:

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

getVolume

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

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调返回音量大小。

示例:

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

getVolume

getVolume(volumeType: AudioVolumeType): Promise<number>

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

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

参数:

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

返回值:

类型 说明
Promise<number> Promise回调返回音量大小。

示例:

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

getMinVolume

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

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调返回最小音量。

示例:

audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  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}`);
});
1
2
3
4
5
6
7

getMinVolume

getMinVolume(volumeType: AudioVolumeType): Promise<number>

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

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

参数:

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

返回值:

类型 说明
Promise<number> Promise回调返回最小音量。

示例:

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

getMaxVolume

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

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调返回最大音量大小。

示例:

audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  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}`);
});
1
2
3
4
5
6
7

getMaxVolume

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

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

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

参数:

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

返回值:

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

示例:

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

mute

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
mute boolean 静音状态,true为静音,false为非静音。
callback AsyncCallback<void> 回调表示成功还是失败。

示例:

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

mute

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
mute boolean 静音状态,true为静音,false为非静音。

返回值:

类型 说明
Promise<void> Promise回调表示成功还是失败。

示例:

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

isMute

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

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<boolean> 回调返回流静音状态,true为静音,false为非静音。

示例:

audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
  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}`);
});
1
2
3
4
5
6
7

isMute

isMute(volumeType: AudioVolumeType): Promise<boolean>

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

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

参数:

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

返回值:

类型 说明
Promise<boolean> Promise回调返回流静音状态,true为静音,false为非静音。

示例:

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

isActive

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

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

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<boolean> 回调返回流的活跃状态,true为活跃,false为不活跃。

示例:

audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
  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}.`);
});
1
2
3
4
5
6
7

isActive

isActive(volumeType: AudioVolumeType): Promise<boolean>

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

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

参数:

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

返回值:

类型 说明
Promise<boolean> Promise回调返回流的活跃状态,true为活跃,false为不活跃。

示例:

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

setRingerMode

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

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

参数:

参数名 类型 必填 说明
mode AudioRingMode 音频铃声模式。
callback AsyncCallback<void> 回调返回设置成功或失败。

示例:

audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
  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.');
});
1
2
3
4
5
6
7

setRingerMode

setRingerMode(mode: AudioRingMode): Promise<void>

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

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

参数:

参数名 类型 必填 说明
mode AudioRingMode 音频铃声模式。

返回值:

类型 说明
Promise<void> Promise回调返回设置成功或失败。

示例:

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

getRingerMode

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRingMode> 回调返回系统的铃声模式。

示例:

audioManager.getRingerMode((err, value) => {
  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}.`);
});
1
2
3
4
5
6
7

getRingerMode

getRingerMode(): Promise<AudioRingMode>

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

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

返回值:

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

示例:

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

setAudioParameter

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

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

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

需要权限: ohos.permission.MODIFY_AUDIO_SETTINGS

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

参数:

参数名 类型 必填 说明
key string 被设置的音频参数的键。
value string 被设置的音频参数的值。
callback AsyncCallback<void> 回调返回设置成功或失败。

示例:

audioManager.setAudioParameter('key_example', 'value_example', (err) => {
  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.');
});
1
2
3
4
5
6
7

setAudioParameter

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

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

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

需要权限: ohos.permission.MODIFY_AUDIO_SETTINGS

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

参数:

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

返回值:

类型 说明
Promise<void> Promise回调返回设置成功或失败。

示例:

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

getAudioParameter

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

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

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

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

参数:

参数名 类型 必填 说明
key string 待获取的音频参数的键。
callback AsyncCallback<string> 回调返回获取的音频参数的值。

示例:

audioManager.getAudioParameter('key_example', (err, value) => {
  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}.`);
});
1
2
3
4
5
6
7

getAudioParameter

getAudioParameter(key: string): Promise<string>

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

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

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

参数:

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

返回值:

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

示例:

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

getDevices

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

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

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 设备类型的flag。
callback AsyncCallback<AudioDeviceDescriptors> 回调,返回设备列表。

示例:

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

getDevices

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

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

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 设备类型的flag。

返回值:

类型 说明
Promise<AudioDeviceDescriptors> Promise回调返回设备列表。

示例:

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

setDeviceActive

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

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

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

参数:

参数名 类型 必填 说明
deviceType ActiveDeviceType 活跃音频设备类型。
active boolean 设备激活状态。
callback AsyncCallback<void> 回调返回设置成功或失败。

示例:

audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
  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.');
});
1
2
3
4
5
6
7

setDeviceActive

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

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

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

参数:

参数名 类型 必填 说明
deviceType ActiveDeviceType 活跃音频设备类型。
active boolean 设备激活状态。

返回值:

类型 说明
Promise<void> Promise回调返回设置成功或失败。

示例:

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

isDeviceActive

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

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

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

参数:

参数名 类型 必填 说明
deviceType ActiveDeviceType 活跃音频设备类型。
callback AsyncCallback<boolean> 回调返回设备的激活状态。

示例:

audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
  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.');
});
1
2
3
4
5
6
7

isDeviceActive

isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>

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

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

参数:

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

返回值:

Type Description
Promise<boolean> Promise回调返回设备的激活状态。

示例:

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

setMicrophoneMute

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

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

需要权限: ohos.permission.MICROPHONE

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

参数:

参数名 类型 必填 说明
mute boolean 待设置的静音状态,true为静音,false为非静音。
callback AsyncCallback<void> 回调返回设置成功或失败。

示例:

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

setMicrophoneMute

setMicrophoneMute(mute: boolean): Promise<void>

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

需要权限: ohos.permission.MICROPHONE

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

参数:

参数名 类型 必填 说明
mute boolean 待设置的静音状态,true为静音,false为非静音。

返回值:

类型 说明
Promise<void> Promise回调返回设置成功或失败。

示例:

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

isMicrophoneMute

isMicrophoneMute(callback: AsyncCallback<boolean>): void

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

需要权限: ohos.permission.MICROPHONE

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<boolean> 回调返回系统麦克风静音状态,true为静音,false为非静音。

示例:

audioManager.isMicrophoneMute((err, value) => {
  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}.`);
});
1
2
3
4
5
6
7

isMicrophoneMute

isMicrophoneMute(): Promise<boolean>

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

需要权限: ohos.permission.MICROPHONE

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

返回值:

类型 说明
Promise<boolean> Promise回调返回系统麦克风静音状态,true为静音,false为非静音。

示例:

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

on('volumeChange')8+

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

监听系统音量变化事件。

系统接口: 该接口为系统接口

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

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'volumeChange'(系统音量变化事件,检测到系统音量改变时,触发该事件)。
callback Callback<VolumeEvent> 回调方法。

示例:

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

on('ringerModeChange')8+

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

监听铃声模式变化事件。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。
callback Callback<AudioRingMode> 回调方法。

示例:

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

on('deviceChange')

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

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

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

参数:

参数名 类型 必填 说明
type string 订阅的事件的类型。支持事件:'deviceChange'
callback Callback<DeviceChangeAction> 获取设备更新详情。

示例:

audioManager.on('deviceChange', (deviceChanged) => {
  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} `);
});
1
2
3
4
5
6

off('deviceChange')

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

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

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

参数:

参数名 类型 必填 说明
type string 订阅的事件的类型。支持事件:'deviceChange'
callback Callback<DeviceChangeAction> 获取设备更新详情。

示例:

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

on('interrupt')

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

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

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

参数:

参数名 类型 必填 说明
type string 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。
interrupt AudioInterrupt 音频打断事件类型的参数。
callback Callback<InterruptAction> 音频打断事件回调方法。

示例:

let interAudioInterrupt = {
  streamUsage:2,
  contentType:0,
  pauseWhenDucked:true
};
audioManager.on('interrupt', interAudioInterrupt, (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} `);
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

off('interrupt')

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

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

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

参数:

参数名 类型 必填 说明
type string 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。
interrupt AudioInterrupt 音频打断事件类型的参数。
callback Callback<InterruptAction> 音频打断事件回调方法。

示例:

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

setAudioScene8+

setAudioScene(scene: AudioScene, callback: AsyncCallback<void>): void

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
scene AudioScene 音频场景模式。
callback AsyncCallback<void> 用于返回结果的回调。

示例:

let audioManager = audio.getAudioManager();
audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err) => {
  if (err) {
    console.error(`Failed to set the audio scene mode.​ ${err}`);
    return;
  }
  console.info('Callback invoked to indicate a successful setting of the audio scene mode.');
});
1
2
3
4
5
6
7
8

setAudioScene8+

setAudioScene(scene: AudioScene): Promise<void>

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
scene AudioScene 音频场景模式。

返回值:

类型 说明
Promise<void> 用于返回结果的回调。

示例:

let audioManager = audio.getAudioManager();
audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL).then(() => {
  console.info('Promise returned to indicate a successful setting of the audio scene mode.');
}).catch ((err) => {
  console.error(`Failed to set the audio scene mode ${err}`);
});
1
2
3
4
5
6

getAudioScene8+

getAudioScene(callback: AsyncCallback<AudioScene>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioScene> 用于返回音频场景模式的回调。

示例:

let audioManager = audio.getAudioManager();
audioManager.getAudioScene((err, value) => {
  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}.`);
});
1
2
3
4
5
6
7
8

getAudioScene8+

getAudioScene(): Promise<AudioScene>

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

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

返回值:

类型 说明
Promise<AudioScene> 用于返回音频场景模式的回调。

示例:

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

getVolumeGroups9+

getVolumeGroups(networkId: string, callback: AsyncCallback<VolumeGroupInfos>): void

获取音量组信息列表,使用callback方式异步返回结果。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
networkId string 设备的网络id。本地设备audio.LOCAL_NETWORK_ID ,也可以通过getRoutingManager().getDevices()获取全部networkId。
callback AsyncCallback<VolumeGroupInfos> 回调,返回音量组信息列表。

示例:

let audioManager = audio.getAudioManager();
audioManager.getVolumeGroups(audio.LOCAL_NETWORK_ID, (err, value) => {
  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.');
});
1
2
3
4
5
6
7
8

getVolumeGroups9+

getVolumeGroups(networkId: string): Promise<VolumeGroupInfos>

获取音量组信息列表,使用promise方式异步返回结果。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
networkId string 设备的网络id。本地设备audio.LOCAL_NETWORK_ID ,也可以通过getRoutingManager().getDevices()获取全部networkId。

返回值:

类型 说明
Promise<VolumeGroupInfos> 音量组信息列表。

示例:

async function getVolumeGroupInfos(){
  let volumegroupinfos = await audio.getAudioManager().getVolumeGroups(audio.LOCAL_NETWORK_ID);
  console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos))
}
1
2
3
4

getGroupManager9+

getGroupManager(groupId: number, callback: AsyncCallback<AudioGroupManager>): void

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
groupId number 音量组id。
callback AsyncCallback< AudioGroupManager > 回调,返回一个音量组实例。

示例:

let audioManager = audio.getAudioManager();
let audioGroupManager;
async function getGroupManager(){
  let value = await audioManager.getVolumeGroups(audio.LOCAL_NETWORK_ID);
  if (value.length > 0) {
    let groupid = value[0].groupId;
    audioManager.getGroupManager(groupid, (err, value) => {
      if (err) {
        console.error(`Failed to obtain the volume group infos list. ${err}`);
        return;
      }
      audioGroupManager = value
      console.info('Callback invoked to indicate that the volume group infos list is obtained.');
    });
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

getGroupManager9+

getGroupManager(groupId: number): Promise<AudioGroupManager>

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
groupId number 音量组id。

返回值:

类型 说明
Promise< AudioGroupManager > 音量组实例。

示例:

let audioManager = audio.getAudioManager();
async function getGroupManager(){
  let value = await audioManager.getVolumeGroups(audio.LOCAL_NETWORK_ID);
  if (value.length > 0) {
    let groupid = value[0].groupId;
    let audioGroupManager = await audioManager.getGroupManager(groupid)
    console.info('Callback invoked to indicate that the volume group infos list is obtained.');
  }
}
1
2
3
4
5
6
7
8
9

getStreamManager9+

getStreamManager(callback: AsyncCallback<AudioStreamManager>): void

获取音频流管理器实例。使用callback方式异步返回结果。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioStreamManager> 返回音频流管理器实例。

示例:

let audioManager = audio.getAudioManager();
let audioStreamManager;
audioManager.getStreamManager((err, data) => {
  if (err) {
    console.error(`getStreamManager : Error: ${err}`);
  } else {
    console.info('getStreamManager : Success : SUCCESS');
    audioStreamManager = data;
  }
});
1
2
3
4
5
6
7
8
9
10

getStreamManager9+

getStreamManager(): Promise<AudioStreamManager>

获取音频流管理器实例。使用Promise方式异步返回结果。

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

返回值:

类型 说明
Promise<AudioStreamManager> 返回音频流管理器实例。

示例:

let audioManager = audio.getAudioManager();
let audioStreamManager;
audioManager.getStreamManager().then((data) => {
  audioStreamManager = data;
  console.info('getStreamManager: Success!');
}).catch((err) => {
  console.error(`getStreamManager: ERROR : ${err}`);
});

1
2
3
4
5
6
7
8
9

requestIndependentInterrupt9+

requestIndependentInterrupt(focusType: FocusType, callback: AsyncCallback<boolean>): void

申请独立焦点,获取独立SessionID,使用callback方式异步返回结果。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
focusType FocusType 焦点类型。
callback AsyncCallback<boolean> 回调,返回焦点申请成功/失败状态。

示例:

async function requestIndependentInterrupt(){
  let value = await audioManager.requestIndependentInterrupt(audio.FocusType.FOCUS_TYPE_RECORDING);
  if (value) {
    console.info('requestIndependentInterrupt interface for result callback: SUCCESS');
  } else {
    console.error('Result ERROR');
  }
}
1
2
3
4
5
6
7
8

requestIndependentInterrupt9+

requestIndependentInterrupt(focusType: FocusType): Promise<boolean>

申请独立焦点,获取独立SessionID,使用promise方式异步返回结果。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
focusType FocusType 焦点类型。

返回值:

类型 说明
Promise<boolean> 返回申请焦点成功/失败状态。

示例:

async function requestIndependentInterrupt(){
  audioManager.requestIndependentInterrupt(audio.FocusType.FOCUS_TYPE_RECORDING).then((value) => {
    console.info('Promise returned to succeed ');
  }).catch ((err) => {
    console.error('Failed to requestIndependentInterrupt');
  });
}
1
2
3
4
5
6
7

abandonIndependentInterrupt9+

abandonIndependentInterrupt(focusType: FocusType, callback: AsyncCallback<boolean>): void

废除独立焦点,使用callback方式异步返回结果。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
focusType FocusType 焦点类型。
callback AsyncCallback<boolean> 回调,返回废除焦点成功/失败状态。

示例:

async function abandonIndependentInterrupt(){
  let value = await audioManager.abandonIndependentInterrupt(audio.FocusType.FOCUS_TYPE_RECORDING);
  if (value) {
    console.info('abandonIndependentInterrupt interface for result callback: SUCCESS');
  } else {
    console.error('Result ERROR');
  }
}
1
2
3
4
5
6
7
8

abandonIndependentInterrupt9+

abandonIndependentInterrupt(focusType: FocusType): Promise<boolean>

废除独立焦点,使用promise方式异步返回结果。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
focusType FocusType 焦点类型。

返回值:

类型 说明
Promise<boolean> 返回废除焦点成功/失败状态。

示例:

async function abandonIndependentInterrupt(){
  audioManager.abandonIndependentInterrupt(audio.FocusType.FOCUS_TYPE_RECORDING).then((value) => {
    console.info('Promise returned to succeed');
  }).catch ((err) => {
    console.error('Failed to abandonIndependentInterrupt');
  });
}
1
2
3
4
5
6
7

AudioGroupManager9+

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

系统接口: 该接口为系统接口

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

setVolume9+

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
volume number 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。
callback AsyncCallback<void> 回调表示成功还是失败。

示例:

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

setVolume9+

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

系统接口: 该接口为系统接口

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

参数:

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

返回值:

类型 说明
Promise<void> Promise回调表示成功还是失败。

示例:

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

getVolume9+

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

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调返回音量大小。

示例:

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

getVolume9+

getVolume(volumeType: AudioVolumeType): Promise<number>

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

系统接口: 该接口为系统接口

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

参数:

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

返回值:

类型 说明
Promise<number> Promise回调返回音量大小。

示例:

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

getMinVolume9+

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

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调返回最小音量。

示例:

audioGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  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}`);
});
1
2
3
4
5
6
7

getMinVolume9+

getMinVolume(volumeType: AudioVolumeType): Promise<number>

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

系统接口: 该接口为系统接口

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

参数:

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

返回值:

类型 说明
Promise<number> Promise回调返回最小音量。

示例:

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

getMaxVolume9+

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

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<number> 回调返回最大音量大小。

示例:

audioGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  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}`);
});
1
2
3
4
5
6
7

getMaxVolume9+

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

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

系统接口: 该接口为系统接口

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

参数:

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

返回值:

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

示例:

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

mute9+

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
mute boolean 静音状态,true为静音,false为非静音。
callback AsyncCallback<void> 回调表示成功还是失败。

示例:

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

mute9+

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

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

需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
mute boolean 静音状态,true为静音,false为非静音。

返回值:

类型 说明
Promise<void> Promise回调表示成功还是失败。

示例:

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

isMute9+

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

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

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
volumeType AudioVolumeType 音量流类型。
callback AsyncCallback<boolean> 回调返回流静音状态,true为静音,false为非静音。

示例:

audioGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
  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}.`);
});
1
2
3
4
5
6
7

isMute9+

isMute(volumeType: AudioVolumeType): Promise<boolean>

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

系统接口: 该接口为系统接口

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

参数:

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

返回值:

类型 说明
Promise<boolean> Promise回调返回流静音状态,true为静音,false为非静音。

示例:

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

AudioStreamManager9+

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

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void

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

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

参数:

名称 类型 必填 说明
callback AsyncCallback<AudioRendererChangeInfoArray> 回调函数,返回当前音频渲染器的信息。

示例:

audioStreamManager.getCurrentAudioRendererInfoArray(async (err, 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 = AudioRendererChangeInfoArray[i];
        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
        console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 
        console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);  
        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(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
        }
      }
    }
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray>

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

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

返回值:

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

示例:

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

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void

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

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

参数:

名称 类型 必填 说明
callback AsyncCallback<AudioCapturerChangeInfoArray> 回调函数,返回当前音频采集器的信息。

示例:

audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, 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(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
        console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);  
        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(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
        }
      }
    }
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray>

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

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

返回值:

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

示例:

async function getCurrentAudioCapturerInfoArray(){
  await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (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(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
        console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);  
        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(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
        }
      }
    }
  }).catch((err) => {
    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  });
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

on('audioRendererChange')9+

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

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

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

参数:

名称 类型 必填 说明
type string 事件类型,支持的事件'audioRendererChange':当音频渲染器发生更改时触发。
callback Callback<AudioRendererChangeInfoArray> 回调函数。

示例:

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

off('audioRendererChange')9+

off(type: "audioRendererChange");

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

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

参数:

名称 类型 必填 说明
type string 事件类型,支持的事件'audioRendererChange':音频渲染器更改事件。

示例:

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

on('audioCapturerChange')9+

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

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

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

参数:

名称 类型 必填 说明
type string 事件类型,支持的事件'audioCapturerChange':当音频采集器发生更改时触发。
callback Callback<AudioCapturerChangeInfoArray> 回调函数。

示例:

audioStreamManager.on('audioCapturerChange', (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(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
    console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
    console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
    console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);  
    var 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(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
      console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
    }
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

off('audioCapturerChange')9+

off(type: "audioCapturerChange");

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

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

参数:

名称 类型 必填 说明
type string 事件类型,支持的事件'audioCapturerChange':音频采集器更改事件。

示例:

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

1
2
3

AudioRoutingManager9+

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

getDevices9+

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

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

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 设备类型的flag。
callback AsyncCallback<AudioDeviceDescriptors> 回调,返回设备列表。

示例:

let audioManager = audio.getAudioManager();
audioManager.getRoutingManager((err,AudioRoutingManager)=>{
  if (err) {
    console.error(`AudioFrameworkTest:Callback:failed to get RoutingManager ${err}`);
  } else {
    AudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
      if (err) {
        console.error(`Failed to obtain the device list. ${err}`);
        return;
      }
      console.info('Callback invoked to indicate that the device list is obtained.');
    });
  }
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14

getDevices9+

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

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

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

参数:

参数名 类型 必填 说明
deviceFlag DeviceFlag 设备类型的flag。

返回值:

类型 说明
Promise<AudioDeviceDescriptors> Promise回调返回设备列表。

示例:

let audioManager = audio.getAudioManager();
audioManager.getRoutingManager((err,AudioRoutingManager)=>{
  if (err) {
    console.error(`AudioFrameworkTest:Callback:failed to get RoutingManager ${err}`);
  }
  else {
    AudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
      console.info('Promise returned to indicate that the device list is obtained.');
    });
  }
});
1
2
3
4
5
6
7
8
9
10
11

on9+

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

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

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

参数:

参数名 类型 必填 说明
type string 订阅的事件的类型。支持事件:'deviceChange'
deviceFlag DeviceFlag 设备类型的flag。
callback Callback<DeviceChangeAction> 获取设备更新详情。

示例:

let audioManager = audio.getAudioManager();
audioManager.getRoutingManager((err,AudioRoutingManager)=>{
  if (err) {
    console.error(`AudioFrameworkTest:Callback:failed to get RoutingManager ${err}`);
  }
  else {
    AudioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged) => {
      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);
    });
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14

off9+

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

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

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

参数:

参数名 类型 必填 说明
type string 订阅的事件的类型。支持事件:'deviceChange'
callback Callback<DeviceChangeAction> 获取设备更新详情。

示例:

let audioManager = audio.getAudioManager();
audioManager.getRoutingManager((err,AudioRoutingManager)=>{
  if (err) {
    console.error(`AudioFrameworkTest:Callback:failed to get RoutingManager ${err}`);
  } else {
    AudioRoutingManager.off('deviceChange', (deviceChanged) => {
      console.info('Should be no callback.');
    });
  }
});
1
2
3
4
5
6
7
8
9
10

selectInputDevice9+

selectInputDevice(inputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void

选择音频输入设备,当前只能选择一个输入设备,使用callback方式异步返回结果。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
inputAudioDevices AudioDeviceDescriptors 输入设备类。
callback AsyncCallback<void> 回调,返回选择输入设备结果。

示例:

let audioManager = audio.getAudioManager();
let inputAudioDeviceDescriptor = [{
  "deviceRole":audio.DeviceRole.INPUT_DEVICE,
  "networkId":audio.LOCAL_NETWORK_ID,
  "interruptGroupId":1,
  "volumeGroupId":1 }];
let audioRoutingManager;

async function getRoutingManager(){
  await audioManager.getRoutingManager().then((value) => {
    audioRoutingManager = value;
    audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor, (err) => {
      if (err) {
        console.error(`Result ERROR: ${err}`);
      } else {
        console.info('Select input devices result callback: SUCCESS'); }
    });
  });
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

on('micStateChange')9+

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

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

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

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

参数:

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

示例:

let audioManager = audio.getAudioManager();
audioManager.getRoutingManager.on('micStateChange', (micStateChange) => {
  console.info(`Current microphone status is: ${micStateChange.mute} `);
});
1
2
3
4

selectInputDevice9+

selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise<void>

系统接口: 该接口为系统接口

选择音频输入设备,当前只能选择一个输入设备,使用Promise方式异步返回结果。

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

参数:

参数名 类型 必填 说明
inputAudioDevices AudioDeviceDescriptors 输入设备类。

返回值:

类型 说明
Promise<void> Promise返回选择输入设备结果。

示例:

let audioManager = audio.getAudioManager();
let inputAudioDeviceDescriptor =[{
  "deviceRole":audio.DeviceRole.INPUT_DEVICE,
  "networkId":audio.LOCAL_NETWORK_ID,
  "interruptGroupId":1,
  "volumeGroupId":1 }];
let audioRoutingManager;

async function getRoutingManager(){
  await audioManager.getRoutingManager().then((value) => {
    audioRoutingManager = value;
    audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor).then(() => {
      console.info('Select input devices result promise: SUCCESS');
    }).catch((err) => {
      console.error(`Result ERROR: ${err}`);
    });
  });
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

selectOutputDevice9+

selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void

选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。

系统接口: 该接口为系统接口

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

参数:

参数名 类型 必填 说明
outputAudioDevices AudioDeviceDescriptors 输出设备类。
callback AsyncCallback<void> 回调,返回获取输出设备结果。

示例:

let audioManager = audio.getAudioManager();
let outputAudioDeviceDescriptor = [{
  "deviceRole":audio.DeviceRole.OUTPUT_DEVICE,
  "networkId":audio.LOCAL_NETWORK_ID,
  "interruptGroupId":1,
  "volumeGroupId":1 }];
let audioRoutingManager;

async function getRoutingManager(){
  await audioManager.getRoutingManager().then((value) => {
    audioRoutingManager = value;
    audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor, (err) => {
      if (err) {
        console.error(`Result ERROR: ${err}`);
      } else {
        console.info('Select output devices result callback: SUCCESS'); }
    });
  });
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

selectOutputDevice9+

selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors): Promise<void>

系统接口: 该接口为系统接口

选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。

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

参数:

参数名 类型 必填 说明
outputAudioDevices AudioDeviceDescriptors 输出设备类。

返回值:

类型 说明
Promise<void> Promise返回选择输出设备结果。

示例:

let audioManager = audio.getAudioManager();
let outputAudioDeviceDescriptor =[{
  "deviceRole":audio.DeviceRole.OUTPUT_DEVICE,
  "networkId":audio.LOCAL_NETWORK_ID,
  "interruptGroupId":1,
  "volumeGroupId":1 }];
let audioRoutingManager;

async function getRoutingManager(){
  await audioManager.getRoutingManager().then((value) => {
    audioRoutingManager = value;
    audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor).then(() => {
      console.info('Select output devices result promise: SUCCESS');
    }).catch((err) => {
      console.error(`Result ERROR: ${err}`);
    });
  });
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

selectOutputDeviceByFilter9+

selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void

系统接口: 该接口为系统接口

根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。

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

参数:

参数名 类型 必填 说明
filter AudioRendererFilter 过滤条件类。
outputAudioDevices AudioDeviceDescriptors 输出设备类。
callback AsyncCallback<void> 回调,返回获取输出设备结果。

示例:

let audioManager = audio.getAudioManager();
let outputAudioRendererFilter = {
  "uid":20010041,
  "rendererInfo": {
    "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
    "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
    "rendererFlags":0 },
  "rendererId":0 };
let outputAudioDeviceDescriptor = [{
  "deviceRole":audio.DeviceRole.OUTPUT_DEVICE,
  "networkId":audio.LOCAL_NETWORK_ID,
  "interruptGroupId":1,
  "volumeGroupId":1 }];
let audioRoutingManager;

async function getRoutingManager(){
  await audioManager.getRoutingManager().then((value) => {
    audioRoutingManager = value;
    audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor, (err) => {
      if (err) {
        console.error(`Result ERROR: ${err}`);
      } else {
        console.info('Select output devices by filter result callback: SUCCESS'); }
    });
  });
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

selectOutputDeviceByFilter9+

selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors): Promise<void>

系统接口: 该接口为系统接口

根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。

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

参数:

参数名 类型 必填 说明
filter AudioRendererFilter 过滤条件类。
outputAudioDevices AudioDeviceDescriptors 输出设备类。

返回值:

类型 说明
Promise<void> Promise返回选择输出设备结果。

示例:

let audioManager = audio.getAudioManager();
let outputAudioRendererFilter = {
  "uid":20010041,
  "rendererInfo": {
    "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
    "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
    "rendererFlags":0 },
  "rendererId":0 };
let outputAudioDeviceDescriptor = [{
  "deviceRole":audio.DeviceRole.OUTPUT_DEVICE,
  "networkId":audio.LOCAL_NETWORK_ID,
  "interruptGroupId":1,
  "volumeGroupId":1 }];
let audioRoutingManager;

async function getRoutingManager(){
  await audioManager.getRoutingManager().then((value) => {
    audioRoutingManager = value;
    audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor).then(() => {
      console.info('Select output devices by filter result promise: SUCCESS');
    }).catch((err) => {
      console.error(`Result ERROR: ${err}`);
    })
  });
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

AudioRendererChangeInfo9+

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

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

名称 类型 可读 可写 说明
streamId number 音频流唯一id。
clientUid number 音频渲染器客户端应用程序的Uid。
此接口为系统接口,三方应用不支持调用。
rendererInfo AudioRendererInfo 音频渲染器信息。
rendererState AudioState 音频状态。
此接口为系统接口,三方应用不支持调用。

AudioRendererChangeInfoArray9+

AudioRenderChangeInfo数组,只读。

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

示例:

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

let audioStreamManager;
let resultFlag = false;
let audioManager = audio.getAudioManager();

audioManager.getStreamManager((err, data) => {
  if (err) {
    console.error(`Get AudioStream Manager : ERROR : ${err}`);
  } else {
    audioStreamManager = data;
    console.info('Get AudioStream Manager : Success');
  }
});

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(`ClientUid for ${i} is: ${AudioRendererChangeInfoArray[i].clientUid}`);
    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}`);
    console.info(`State for ${i} is: ${AudioRendererChangeInfoArray[i].rendererState}`);
  	var 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}`);
  	}
    if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
      resultFlag = true;
      console.info(`ResultFlag for ${i} is: ${resultFlag}`);
    }
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

AudioCapturerChangeInfo9+

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

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

名称 类型 可读 可写 说明
streamId number 音频流唯一id。
clientUid number 音频采集器客户端应用程序的Uid。
此接口为系统接口,三方应用不支持调用。
capturerInfo AudioCapturerInfo 音频采集器信息。
capturerState AudioState 音频状态。
此接口为系统接口,三方应用不支持调用。

AudioCapturerChangeInfoArray9+

AudioCapturerChangeInfo数组,只读。

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

示例:

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

const audioManager = audio.getAudioManager();
let audioStreamManager;
audioManager.getStreamManager((err, data) => {
  if (err) {
    console.error(`getStreamManager : Error: ${err}`);
  } else {
    console.info('getStreamManager : Success : SUCCESS');
    audioStreamManager = data;
  }
});

let resultFlag = false;
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(`CUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
    console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
    console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
    console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
    var 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}`);
    }
    if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
      resultFlag = true;
      console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
    }
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

AudioDeviceDescriptor

描述音频设备。

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

名称 类型 可读 可写 说明
deviceRole DeviceRole 设备角色。
deviceType DeviceType 设备类型。
id9+ number 设备id。
name9+ string 设备名称。
address9+ string 设备地址。
sampleRates9+ Array<number> 支持的采样率。
channelCounts9+ Array<number> 支持的通道数。
channelMasks9+ Array<number> 支持的通道掩码。
networkId9+ string 设备组网的ID。
此接口为系统接口,三方应用不支持调用。
interruptGroupId9+ number 设备所处的焦点组ID。
此接口为系统接口,三方应用不支持调用。
volumeGroupId9+ number 设备所处的音量组ID。
此接口为系统接口,三方应用不支持调用。

AudioDeviceDescriptors

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

示例:

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

function displayDeviceProp(value) {
  deviceRoleValue = value.deviceRole;
  deviceTypeValue = value.deviceType;
}

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

AudioRendererFilter9+

过滤条件类。在调用selectOutputDeviceByFilter接口前,需要先创建AudioRendererFilter实例。

系统接口: 该接口为系统接口

名称 类型 必填 说明
uid number 表示应用ID。
系统能力: SystemCapability.Multimedia.Audio.Core
rendererInfo AudioRendererInfo 表示渲染器信息。
系统能力: SystemCapability.Multimedia.Audio.Renderer
rendererId number 音频流唯一id。
系统能力: SystemCapability.Multimedia.Audio.Renderer

示例:

let outputAudioRendererFilter = {
  "uid":20010041,
  "rendererInfo": {
    "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
    "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
    "rendererFlags":0 },
  "rendererId":0 };
1
2
3
4
5
6
7

AudioRenderer8+

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

属性

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

名称 类型 可读 可写 说明
state8+ AudioState 音频渲染器的状态。

示例:

let state = audioRenderer.state;
1

getRendererInfo8+

getRendererInfo(callback: AsyncCallback<AudioRendererInfo>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRendererInfo> 返回音频渲染器的信息。

示例:

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

getRendererInfo8+

getRendererInfo(): Promise<AudioRendererInfo>

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

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

返回值:

类型 说明
Promise<AudioRendererInfo> Promise用于返回音频渲染器信息。

示例:

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

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioStreamInfo> 回调返回音频流信息。

示例:

audioRenderer.getStreamInfo((err, streamInfo) => {
  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}`);
});
1
2
3
4
5
6
7

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

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

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

返回值:

类型 说明
Promise<AudioStreamInfo> Promise返回音频流信息.

示例:

audioRenderer.getStreamInfo().then((streamInfo) => {
  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) => {
  console.error(`ERROR: ${err}`);
});
1
2
3
4
5
6
7
8
9

start8+

start(callback: AsyncCallback<void>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。

示例:

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

start8+

start(): Promise<void>

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

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

返回值:

类型 说明
Promise<void> Promise方式异步返回结果。

示例:

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

pause8+

pause(callback: AsyncCallback<void>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 返回回调的结果。

示例:

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

pause8+

pause(): Promise<void>

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

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

返回值:

类型 说明
Promise<void> Promise方式异步返回结果。

示例:

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

drain8+

drain(callback: AsyncCallback<void>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 返回回调的结果。

示例:

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

drain8+

drain(): Promise<void>

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

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

返回值:

类型 说明
Promise<void> Promise方式异步返回结果。

示例:

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

stop8+

stop(callback: AsyncCallback<void>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 返回回调的结果。

示例:

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

stop8+

stop(): Promise<void>

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

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

返回值:

类型 说明
Promise<void> Promise方式异步返回结果。

示例:

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

release8+

release(callback: AsyncCallback<void>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 返回回调的结果。

示例:

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

release8+

release(): Promise<void>

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

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

返回值:

类型 说明
Promise<void> Promise方式异步返回结果。

示例:

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

write8+

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

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

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

参数:

参数名 类型 必填 说明
buffer ArrayBuffer 要写入缓冲区的数据。
callback AsyncCallback<number> 回调如果成功,返回写入的字节数,否则返回errorcode。

示例:

let bufferSize;
audioRenderer.getBufferSize().then((data)=> {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
  }).catch((err) => {
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
  });
console.info(`Buffer size: ${bufferSize}`);
let context = featureAbility.getContext();
let path;
async function getCacheDir(){
  path = await context.getCacheDir();
}
let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
let ss = fileio.createStreamSync(filePath, 'r');
let buf = new ArrayBuffer(bufferSize);
ss.readSync(buf);
audioRenderer.write(buf, (err, writtenbytes) => {
  if (writtenbytes < 0) {
    console.error('write failed.');
  } else {
    console.info(`Actual written bytes: ${writtenbytes}`);
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

write8+

write(buffer: ArrayBuffer): Promise<number>

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

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

返回值:

类型 说明
Promise<number> Promise返回结果,如果成功,返回写入的字节数,否则返回errorcode。

示例:

let bufferSize;
audioRenderer.getBufferSize().then((data) => {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
  }).catch((err) => {
  console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
  });
console.info(`BufferSize: ${bufferSize}`);
let context = featureAbility.getContext();
let path;
async function getCacheDir(){
  path = await context.getCacheDir();
}
let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
let ss = fileio.createStreamSync(filePath, 'r');
let buf = new ArrayBuffer(bufferSize);
ss.readSync(buf);
audioRenderer.write(buf).then((writtenbytes) => {
  if (writtenbytes < 0) {
      console.error('write failed.');
  } else {
      console.info(`Actual written bytes: ${writtenbytes}`);
  }
}).catch((err) => {
    console.error(`ERROR: ${err}`);
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调返回时间戳。

示例:

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

getAudioTime8+

getAudioTime(): Promise<number>

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

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

返回值:

类型 描述
Promise<number> Promise回调返回时间戳。

示例:

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

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调返回缓冲区大小。

示例:

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

getBufferSize8+

getBufferSize(): Promise<number>

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

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

返回值:

类型 说明
Promise<number> promise回调返回缓冲区大小。

示例:

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

setRenderRate8+

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

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

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

参数:

参数名 类型 必填 说明
rate AudioRendererRate 渲染的速率。
callback AsyncCallback<void> 用于返回执行结果的回调。

示例:

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

setRenderRate8+

setRenderRate(rate: AudioRendererRate): Promise<void>

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

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

参数:

参数名 类型 必填 说明
rate AudioRendererRate 渲染的速率。

返回值:

类型 说明
Promise<void> Promise用于返回执行结果。

示例:

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

getRenderRate8+

getRenderRate(callback: AsyncCallback<AudioRendererRate>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioRendererRate> 回调返回渲染速率。

示例:

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

getRenderRate8+

getRenderRate(): Promise<AudioRendererRate>

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

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

返回值:

类型 说明
Promise<AudioRendererRate> Promise回调返回渲染速率。

示例:

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

setInterruptMode9+

setInterruptMode(mode: InterruptMode): Promise<void>

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

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

参数:

参数名 类型 必填 说明
mode InterruptMode 焦点模型。

返回值:

类型 说明
Promise<void> 以Promise对象返回结果,设置成功时返回undefined,否则返回error。

示例:

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

setInterruptMode9+

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

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

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

参数:

参数名 类型 必填 说明
mode InterruptMode 焦点模型。
callback AsyncCallback<void> 回调返回执行结果。

示例:

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

on('interrupt')9+

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

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

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'interrupt'(中断事件被触发,音频播放被中断。)
callback Callback<InterruptEvent> 被监听的中断事件的回调。

示例:

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

on('markReach')8+

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

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

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'markReach'。
frame number 触发事件的帧数。 该值必须大于 0。
callback Callback<number> 触发事件时调用的回调。

示例:

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

off('markReach') 8+

off(type: 'markReach'): void

取消订阅标记事件。

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

参数:

参数名 类型 必填 说明
type string 要取消订阅事件的类型。支持的事件为:'markReach'。

示例:

audioRenderer.off('markReach');
1

on('periodReach') 8+

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

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

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'periodReach'。
frame number 触发事件的帧数。 该值必须大于 0。
callback Callback<number> 触发事件时调用的回调。

示例:

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

off('periodReach') 8+

off(type: 'periodReach'): void

取消订阅标记事件。

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

参数:

参数名 类型 必填 说明
type string 要取消订阅事件的类型。支持的事件为:'periodReach'。

示例:

audioRenderer.off('periodReach')
1

on('stateChange') 8+

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

订阅监听状态变化。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'stateChange'。
callback AudioState 返回监听的状态。

示例:

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

AudioCapturer8+

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

属性

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

名称 类型 可读 可写 说明
state8+ AudioState 音频采集器状态。

示例:

let state = audioCapturer.state;
1

getCapturerInfo8+

getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioCapturerInfo> 使用callback方式异步返回采集器信息。

示例:

audioCapturer.getCapturerInfo((err, capturerInfo) => {
  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}`);
  }
});
1
2
3
4
5
6
7
8
9

getCapturerInfo8+

getCapturerInfo(): Promise<AudioCapturerInfo>

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

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

返回值:

类型 说明
Promise<AudioCapturerInfo> 使用Promise方式异步返回采集器信息。

示例:

audioCapturer.getCapturerInfo().then((audioParamsGet) => {
  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) => {
  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
});
1
2
3
4
5
6
7
8
9
10
11
12

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<AudioStreamInfo> 使用callback方式异步返回流信息。

示例:

audioCapturer.getStreamInfo((err, streamInfo) => {
  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}`);
  }
});
1
2
3
4
5
6
7
8
9
10
11

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

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

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

返回值:

类型 说明
Promise<AudioStreamInfo> 使用Promise方式异步返回流信息。

示例:

audioCapturer.getStreamInfo().then((audioParamsGet) => {
  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) => {
  console.error(`getStreamInfo :ERROR: ${err}`);
});
1
2
3
4
5
6
7
8
9

start8+

start(callback: AsyncCallback<void>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 使用callback方式异步返回结果。

示例:

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

start8+

start(): Promise<void>

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

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

返回值:

类型 说明
Promise<void> 使用Promise方式异步返回结果。

示例:

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) => {
  console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
});
1
2
3
4
5
6
7
8
9
10
11

stop8+

stop(callback: AsyncCallback<void>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 使用callback方式异步返回结果。

示例:

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

stop8+

stop(): Promise<void>

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

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

返回值:

类型 说明
Promise<void> 使用Promise方式异步返回结果。

示例:

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) => {
  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
});
1
2
3
4
5
6
7
8
9

release8+

release(callback: AsyncCallback<void>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> Callback used to return the result.

示例:

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

release8+

release(): Promise<void>

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

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

返回值:

类型 说明
Promise<void> 使用Promise方式异步返回结果。

示例:

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

read8+

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

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

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

参数:

参数名 类型 必填 说明
size number 读入的字节数。
isBlockingRead boolean 是否阻塞读操作。
callback AsyncCallback<ArrayBuffer> 使用callback方式异步返回缓冲区。

示例:

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

read8+

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

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

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

参数:

参数名 类型 必填 说明
size number 读入的字节数。
isBlockingRead boolean 是否阻塞读操作。

返回值:

类型 说明
Promise<ArrayBuffer> 如果操作成功,返回读取的缓冲区数据;否则返回错误代码。

示例:

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

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 使用callback方式异步返回结果。

示例:

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

getAudioTime8+

getAudioTime(): Promise<number>

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

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

返回值:

类型 说明
Promise<number> 使用Promise方式异步返回结果。

示例:

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

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

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

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 使用callback方式异步返回缓冲区大小。

示例:

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

getBufferSize8+

getBufferSize(): Promise<number>

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

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

返回值:

类型 说明
Promise<number> 使用Promise方式异步返回缓冲区大小。

示例:

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

on('markReach')8+

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

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

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'markReach'。
frame number 触发事件的帧数。 该值必须大于0。
callback Callback<number> 使用callback方式异步返回被触发事件的回调。

示例:

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

off('markReach')8+

off(type: 'markReach'): void

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

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

参数:

参数名 类型 必填 说明
type string 取消事件回调类型,支持的事件为:'markReach'。

示例:

audioCapturer.off('markReach');
1

on('periodReach')8+

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

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

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'periodReach'。
frame number 触发事件的帧数。 该值必须大于0。
callback Callback<number> 使用callback方式异步返回被触发事件的回调

示例:

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

off('periodReach')8+

off(type: 'periodReach'): void

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

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

参数:

参数名 类型 必填 说明
type string 取消事件回调类型,支持的事件为:'periodReach'。

示例:

audioCapturer.off('periodReach')
1

on('stateChange') 8+

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

订阅监听状态变化。

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

参数:

参数名 类型 必填 说明
type string 事件回调类型,支持的事件为:'stateChange'。
callback AudioState 返回监听的状态。

示例:

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

ToneType 9+

枚举,播放器的音调类型。

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

名称 默认值 描述
TONE_TYPE_DIAL_0 0 键0的DTMF音。
TONE_TYPE_DIAL_1 1 键1的DTMF音。
TONE_TYPE_DIAL_2 2 键2的DTMF音。
TONE_TYPE_DIAL_3 3 键3的DTMF音。
TONE_TYPE_DIAL_4 4 键4的DTMF音。
TONE_TYPE_DIAL_5 5 键5的DTMF音。
TONE_TYPE_DIAL_6 6 键6的DTMF音。
TONE_TYPE_DIAL_7 7 键7的DTMF音。
TONE_TYPE_DIAL_8 8 键8的DTMF音。
TONE_TYPE_DIAL_9 9 键9的DTMF音。
TONE_TYPE_DIAL_S 10 键*的DTMF音。
TONE_TYPE_DIAL_P 11 键#的DTMF音。
TONE_TYPE_DIAL_A 12 键A的DTMF音。
TONE_TYPE_DIAL_B 13 键B的DTMF音。
TONE_TYPE_DIAL_C 14 键C的DTMF音。
TONE_TYPE_DIAL_D 15 键D的DTMF音。
TONE_TYPE_COMMON_SUPERVISORY_DIAL 100 呼叫监管音调,拨号音。
TONE_TYPE_COMMON_SUPERVISORY_BUSY 101 呼叫监管音调,忙。
TONE_TYPE_COMMON_SUPERVISORY_CONGESTION 102 呼叫监管音调,拥塞。
TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK 103 呼叫监管音调,无线电 ACK。
TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE 104 呼叫监管音调,无线电不可用。
TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING 106 呼叫监管音调,呼叫等待。
TONE_TYPE_COMMON_SUPERVISORY_RINGTONE 107 呼叫监管音调,铃声。
TONE_TYPE_COMMON_PROPRIETARY_BEEP 200 专有声调,一般蜂鸣声。
TONE_TYPE_COMMON_PROPRIETARY_ACK 201 专有声调,ACK。
TONE_TYPE_COMMON_PROPRIETARY_PROMPT 203 专有声调,PROMPT。
TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP 204 专有声调,双重蜂鸣声。

TonePlayer9+

提供播放和管理DTMF(Dual Tone Multi Frequency,双音多频)音调的方法,包括各种系统监听音调、专有音调,如拨号音、通话回铃音等。

load9+

load(type: ToneType, callback: AsyncCallback<void>): void

加载DTMF音调配置。使用callback方式异步返回结果。

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

参数:

参数名 类型 必填 说明
type ToneType(#tonetype9) 配置的音调类型。
callback AsyncCallback<void> 使用callback方式异步返回结果。

示例:

tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err) => {
  if (err) {
    console.error(`callback call load failed error: ${err.message}`);
    return;
  } else {
    console.info('callback call load success');
  }
});
1
2
3
4
5
6
7
8

load9+

load(type: ToneType): Promise<void>

加载DTMF音调配置。使用Promise方式异步返回结果。

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

参数:

参数名 类型 必填 说明
type ToneType(#tonetype9) 配置的音调类型。

返回值:

类型 说明
Promise<void> 使用Promise方式异步返回结果。

示例:

tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => {
  console.info('promise call load ');
}).catch(() => {
  console.error('promise call load fail');
});
1
2
3
4
5

start9+

start(callback: AsyncCallback<void>): void

启动DTMF音调播放。使用callback方式异步返回结果。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 使用callback方式异步返回结果。

示例:

tonePlayer.start((err) => {
  if (err) {
    console.error(`callback call start failed error: ${err.message}`);
    return;
  } else {
    console.info('callback call start success');
  }
});
1
2
3
4
5
6
7
8

start9+

start(): Promise<void>

启动DTMF音调播放。使用Promise方式异步返回结果。

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

返回值:

类型 说明
Promise<void> 使用Promise方式异步返回结果。

示例:

tonePlayer.start().then(() => {
  console.info('promise call start');
}).catch(() => {
  console.error('promise call start fail');
});
1
2
3
4
5

stop9+

stop(callback: AsyncCallback<void>): void

停止当前正在播放的音调。使用callback方式异步返回结果。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 使用callback方式异步返回结果。

示例:

tonePlayer.stop((err) => {
  if (err) {
    console.error(`callback call stop error: ${err.message}`);
    return;
  } else {
    console.error('callback call stop success ');
  }
});
1
2
3
4
5
6
7
8

stop9+

stop(): Promise<void>

停止当前正在播放的音调。使用Promise方式异步返回结果。

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

返回值:

类型 说明
Promise<void> 使用Promise方式异步返回结果。

示例:

tonePlayer.stop().then(() => {
  console.info('promise call stop finish');
}).catch(() => {
  console.error('promise call stop fail');
});
1
2
3
4
5

release9+

release(callback: AsyncCallback<void>): void

释放与此TonePlay对象关联的资源。使用callback方式异步返回结果。

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 使用callback方式异步返回结果。

示例:

tonePlayer.release((err) => {
  if (err) {
    console.error(`callback call release failed error: ${err.message}`);
    return;
  } else {
    console.info('callback call release success ');
  }
});
1
2
3
4
5
6
7
8

release9+

release(): Promise<void>

释放与此TonePlay对象关联的资源。使用Promise方式异步返回结果。

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

返回值:

类型 说明
Promise<void> 使用Promise方式异步返回结果。

示例:

tonePlayer.release().then(() => {
  console.info('promise call release');
}).catch(() => {
  console.error('promise call release fail');
});
1
2
3
4
5