音频管理
音频管理提供管理音频的一些基础能力,包括对音频音量、音频设备的管理,以及对音频数据的采集和渲染等。
该模块提供以下音频相关的常用功能:
- AudioManager:音频管理。
- AudioRenderer:音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。
- AudioCapturer:音频采集,用于录制PCM音频数据。
本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
常量
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
DEFAULT_VOLUME_GROUP_ID9+ | number | 是 | 否 | 默认音量组id。 系统能力: SystemCapability.Multimedia.Audio.Volume |
DEFAULT_INTERRUPT_GROUP_ID9+ | number | 是 | 否 | 默认音频中断组id。 系统能力: SystemCapability.Multimedia.Audio.Interrupt |
示例:
- import audio from '@ohos.multimedia.audio';
- const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
- const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;
audio.getAudioManager
getAudioManager(): AudioManager
获取音频管理器。
系统能力: SystemCapability.Multimedia.Audio.Core
返回值:
类型 | 说明 |
---|---|
音频管理类。 |
示例:
- let audioManager = audio.getAudioManager();
audio.createAudioRenderer8+
createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback<AudioRenderer>): void
获取音频渲染器。使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | 是 | 配置渲染器。 | |
callback | AsyncCallback<AudioRenderer> | 是 | 音频渲染器对象。 |
示例:
- import featureAbility from '@ohos.ability.featureAbility';
- import fs from '@ohos.file.fs';
- 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;
- }
- });
audio.createAudioRenderer8+
createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer>
获取音频渲染器。使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | 是 | 配置渲染器。 |
返回值:
类型 | 说明 |
---|---|
Promise<AudioRenderer> | 音频渲染器对象。 |
示例:
- import featureAbility from '@ohos.ability.featureAbility';
- import fs from '@ohos.file.fs';
- 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}`);
- });
audio.createAudioCapturer8+
createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer>): void
获取音频采集器。使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Capturer
需要权限: ohos.permission.MICROPHONE
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | 是 | 配置音频采集器。 | |
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;
- }
- });
audio.createAudioCapturer8+
createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer>
获取音频采集器。使用promise 方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Capturer
需要权限: ohos.permission.MICROPHONE
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | 是 | 配置音频采集器。 |
返回值:
类型 | 说明 |
---|---|
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}`);
- });
AudioVolumeType
枚举,音频流类型。
系统能力: SystemCapability.Multimedia.Audio.Volume
名称 | 值 | 说明 |
---|---|---|
VOICE_CALL8+ | 0 | 语音电话。 |
RINGTONE | 2 | 铃声。 |
MEDIA | 3 | 媒体。 |
VOICE_ASSISTANT8+ | 9 | 语音助手。 |
InterruptMode9+
枚举,焦点模型。
系统能力: SystemCapability.Multimedia.Audio.Interrupt
名称 | 值 | 说明 |
---|---|---|
SHARE_MODE | 0 | 共享焦点模式。 |
INDEPENDENT_MODE | 1 | 独立焦点模式。 |
DeviceFlag
枚举,可获取的设备种类。
系统能力: SystemCapability.Multimedia.Audio.Device
名称 | 值 | 说明 |
---|---|---|
OUTPUT_DEVICES_FLAG | 1 | 输出设备。 |
INPUT_DEVICES_FLAG | 2 | 输入设备。 |
ALL_DEVICES_FLAG | 3 | 所有设备。 |
DeviceRole
枚举,设备角色。
系统能力: SystemCapability.Multimedia.Audio.Device
名称 | 值 | 说明 |
---|---|---|
INPUT_DEVICE | 1 | 输入设备角色。 |
OUTPUT_DEVICE | 2 | 输出设备角色。 |
DeviceType
枚举,设备类型。
系统能力: SystemCapability.Multimedia.Audio.Device
名称 | 值 | 说明 |
---|---|---|
INVALID | 0 | 无效设备。 |
EARPIECE | 1 | 听筒。 |
SPEAKER | 2 | 扬声器。 |
WIRED_HEADSET | 3 | 有线耳机,带麦克风。 |
WIRED_HEADPHONES | 4 | 有线耳机,无麦克风。 |
BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |
BLUETOOTH_A2DP | 8 | 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。 |
MIC | 15 | 麦克风。 |
USB_HEADSET | 22 | USB耳机,带麦克风。 |
DEFAULT9+ | 1000 | 默认设备类型。 |
CommunicationDeviceType9+
枚举,用于通信的可用设备类型。
系统能力: SystemCapability.Multimedia.Audio.Communication
名称 | 值 | 说明 |
---|---|---|
SPEAKER | 2 | 扬声器。 |
AudioRingMode
枚举,铃声模式。
系统能力: SystemCapability.Multimedia.Audio.Communication
名称 | 值 | 说明 |
---|---|---|
RINGER_MODE_SILENT | 0 | 静音模式。 |
RINGER_MODE_VIBRATE | 1 | 震动模式。 |
RINGER_MODE_NORMAL | 2 | 响铃模式。 |
AudioSampleFormat8+
枚举,音频采样格式。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
SAMPLE_FORMAT_INVALID | -1 | 无效格式。 |
SAMPLE_FORMAT_U8 | 0 | 无符号8位整数。 |
SAMPLE_FORMAT_S16LE | 1 | 带符号的16位整数,小尾数。 |
SAMPLE_FORMAT_S24LE | 2 | 带符号的24位整数,小尾数。 由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。 |
SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。 由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。 |
SAMPLE_FORMAT_F32LE9+ | 4 | 带符号的32位浮点数,小尾数。 由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。 |
AudioErrors9+
枚举,音频错误码。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
ERROR_INVALID_PARAM | 6800101 | 无效入参。 |
ERROR_NO_MEMORY | 6800102 | 分配内存失败。 |
ERROR_ILLEGAL_STATE | 6800103 | 状态不支持。 |
ERROR_UNSUPPORTED | 6800104 | 参数选项不支持。 |
ERROR_TIMEOUT | 6800105 | 处理超时。 |
ERROR_STREAM_LIMIT | 6800201 | 音频流数量达到限制。 |
ERROR_SYSTEM | 6800301 | 系统处理异常。 |
AudioChannel8+
枚举, 音频声道。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
CHANNEL_1 | 0x1 << 0 | 第一声道。 |
CHANNEL_2 | 0x1 << 1 | 第二声道。 |
AudioSamplingRate8+
枚举,音频采样率,具体设备支持的采样率规格会存在差异。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
SAMPLE_RATE_8000 | 8000 | 采样率为8000。 |
SAMPLE_RATE_11025 | 11025 | 采样率为11025。 |
SAMPLE_RATE_12000 | 12000 | 采样率为12000。 |
SAMPLE_RATE_16000 | 16000 | 采样率为16000。 |
SAMPLE_RATE_22050 | 22050 | 采样率为22050。 |
SAMPLE_RATE_24000 | 24000 | 采样率为24000。 |
SAMPLE_RATE_32000 | 32000 | 采样率为32000。 |
SAMPLE_RATE_44100 | 44100 | 采样率为44100。 |
SAMPLE_RATE_48000 | 48000 | 采样率为48000。 |
SAMPLE_RATE_64000 | 64000 | 采样率为64000。 |
SAMPLE_RATE_96000 | 96000 | 采样率为96000。 |
AudioEncodingType8+
枚举,音频编码类型。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
ENCODING_TYPE_INVALID | -1 | 无效。 |
ENCODING_TYPE_RAW | 0 | PCM编码。 |
ContentType
枚举,音频内容类型。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
CONTENT_TYPE_UNKNOWN | 0 | 未知类型。 |
CONTENT_TYPE_SPEECH | 1 | 语音。 |
CONTENT_TYPE_MUSIC | 2 | 音乐。 |
CONTENT_TYPE_MOVIE | 3 | 电影。 |
CONTENT_TYPE_SONIFICATION | 4 | 通知音。 |
CONTENT_TYPE_RINGTONE8+ | 5 | 铃声。 |
StreamUsage
枚举,音频流使用类型。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
STREAM_USAGE_UNKNOWN | 0 | 未知类型。 |
STREAM_USAGE_MEDIA | 1 | 音频。 |
STREAM_USAGE_VOICE_COMMUNICATION | 2 | 语音通信。 |
STREAM_USAGE_VOICE_ASSISTANT9+ | 3 | 语音播报。 |
STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 |
AudioState8+
枚举,音频状态。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
STATE_INVALID | -1 | 无效状态。 |
STATE_NEW | 0 | 创建新实例状态。 |
STATE_PREPARED | 1 | 准备状态。 |
STATE_RUNNING | 2 | 可运行状态。 |
STATE_STOPPED | 3 | 停止状态。 |
STATE_RELEASED | 4 | 释放状态。 |
STATE_PAUSED | 5 | 暂停状态。 |
AudioRendererRate8+
枚举,音频渲染速度。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 值 | 说明 |
---|---|---|
RENDER_RATE_NORMAL | 0 | 正常速度。 |
RENDER_RATE_DOUBLE | 1 | 2倍速。 |
RENDER_RATE_HALF | 2 | 0.5倍数。 |
InterruptType
枚举,中断类型。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 值 | 说明 |
---|---|---|
INTERRUPT_TYPE_BEGIN | 1 | 音频播放中断事件开始。 |
INTERRUPT_TYPE_END | 2 | 音频播放中断事件结束。 |
InterruptForceType9+
枚举,强制打断类型。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 值 | 说明 |
---|---|---|
INTERRUPT_FORCE | 0 | 由系统进行操作,强制打断音频播放。 |
INTERRUPT_SHARE | 1 | 由应用进行操作,可以选择打断或忽略。 |
InterruptHint
枚举,中断提示。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 值 | 说明 |
---|---|---|
INTERRUPT_HINT_NONE8+ | 0 | 无提示。 |
INTERRUPT_HINT_RESUME | 1 | 提示音频恢复。 |
INTERRUPT_HINT_PAUSE | 2 | 提示音频暂停。 |
INTERRUPT_HINT_STOP | 3 | 提示音频停止。 |
INTERRUPT_HINT_DUCK | 4 | 提示音频躲避。(躲避:音量减弱,而不会停止) |
INTERRUPT_HINT_UNDUCK8+ | 5 | 提示音量恢复。 |
AudioStreamInfo8+
音频流信息。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
samplingRate | 是 | 音频文件的采样率。 | |
channels | 是 | 音频文件的通道数。 | |
sampleFormat | 是 | 音频采样格式。 | |
encodingType | 是 | 音频编码格式。 |
AudioRendererInfo8+
音频渲染器信息。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
content | 是 | 媒体类型。 | |
usage | 是 | 音频流使用类型。 | |
rendererFlags | number | 是 | 音频渲染器标志。 |
AudioRendererOptions8+
音频渲染器选项信息。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
streamInfo | 是 | 表示音频流信息。 | |
rendererInfo | 是 | 表示渲染器信息。 |
InterruptEvent9+
播放中断时,应用接收的中断事件。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
eventType | 是 | 中断事件类型,开始或是结束。 | |
forceType | 是 | 操作是由系统执行或是由应用程序执行。 | |
hintType | 是 | 中断提示。 |
VolumeEvent9+
音量改变时,应用接收的事件。
系统能力: SystemCapability.Multimedia.Audio.Volume
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
updateUi | boolean | 是 | 在UI中显示音量变化。 |
MicStateChangeEvent9+
麦克风状态变化时,应用接收的事件。
系统能力: SystemCapability.Multimedia.Audio.Device
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
mute | boolean | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
DeviceChangeAction
描述设备连接状态变化和设备信息。
系统能力: SystemCapability.Multimedia.Audio.Device
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
type | 是 | 设备连接状态变化。 | |
deviceDescriptors | 是 | 设备信息。 |
DeviceChangeType
枚举,设备连接状态变化。
系统能力: SystemCapability.Multimedia.Audio.Device
名称 | 值 | 说明 |
---|---|---|
CONNECT | 0 | 设备连接。 |
DISCONNECT | 1 | 断开设备连接。 |
AudioCapturerOptions8+
音频采集器选项信息。
系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Capturer
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
streamInfo | 是 | 表示音频流信息。 | |
capturerInfo | 是 | 表示采集器信息。 |
AudioCapturerInfo8+
描述音频采集器信息。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
source | 是 | 音源类型。 | |
capturerFlags | number | 是 | 音频采集器标志。 |
SourceType8+
枚举,音源类型。
系统能力: SystemCapability.Multimedia.Audio.Core
名称 | 值 | 说明 |
---|---|---|
SOURCE_TYPE_INVALID | -1 | 无效的音频源。 |
SOURCE_TYPE_MIC | 0 | Mic音频源。 |
SOURCE_TYPE_VOICE_RECOGNITION9+ | 1 | 语音识别源。 |
SOURCE_TYPE_VOICE_COMMUNICATION | 7 | 语音通话场景的音频源。 |
AudioScene8+
枚举,音频场景。
系统能力: SystemCapability.Multimedia.Audio.Communication
名称 | 值 | 说明 |
---|---|---|
AUDIO_SCENE_DEFAULT | 0 | 默认音频场景。 |
AUDIO_SCENE_VOICE_CHAT | 3 | 语音聊天模式。 |
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.');
- });
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.');
- });
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}.`);
- });
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}.`);
- });
getAudioScene8+
getAudioScene(callback: AsyncCallback<AudioScene>): void
获取音频场景模式,使用callback方式返回异步结果。
系统能力: SystemCapability.Multimedia.Audio.Communication
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<AudioScene> | 是 | 用于返回音频场景模式的回调。 |
示例:
- 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}.`);
- });
getAudioScene8+
getAudioScene(): Promise<AudioScene>
获取音频场景模式,使用Promise方式返回异步结果。
系统能力: SystemCapability.Multimedia.Audio.Communication
返回值:
类型 | 说明 |
---|---|
Promise<AudioScene> | 用于返回音频场景模式的回调。 |
示例:
- 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}`);
- });
getVolumeManager9+
getVolumeManager(): AudioVolumeManager
获取音频音量管理器。
系统能力: SystemCapability.Multimedia.Audio.Volume
示例:
- let audioVolumeManager = audioManager.getVolumeManager();
getStreamManager9+
getStreamManager(): AudioStreamManager
获取音频流管理器。
系统能力: SystemCapability.Multimedia.Audio.Core
示例:
- let audioStreamManager = audioManager.getStreamManager();
getRoutingManager9+
getRoutingManager(): AudioRoutingManager
获取音频路由设备管理器。
系统能力: SystemCapability.Multimedia.Audio.Device
示例:
- let audioRoutingManager = audioManager.getRoutingManager();
setVolume(deprecated)
setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void
设置指定流的音量,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。
需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
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.');
- });
setVolume(deprecated)
setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>
设置指定流的音量,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。
需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise回调表示成功还是失败。 |
示例:
- audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
- console.info('Promise returned to indicate a successful volume setting.');
- });
getVolume(deprecated)
getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的音量,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getVolume替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
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.');
- });
getVolume(deprecated)
getVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的音量,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getVolume替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise回调返回音量大小。 |
示例:
- audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
- });
getMinVolume(deprecated)
getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的最小音量,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getMinVolume替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
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}`);
- });
getMinVolume(deprecated)
getMinVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的最小音量,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getMinVolume替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise回调返回最小音量。 |
示例:
- audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
- });
getMaxVolume(deprecated)
getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的最大音量,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getMaxVolume替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
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}`);
- });
getMaxVolume(deprecated)
getMaxVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的最大音量,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getMaxVolume替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise回调返回最大音量大小。 |
示例:
- audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
- console.info('Promised returned to indicate that the maximum volume is obtained.');
- });
mute(deprecated)
mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void
设置指定音量流静音,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
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.');
- });
mute(deprecated)
mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>
设置指定音量流静音,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
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.');
- });
isMute(deprecated)
isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
获取指定音量流是否被静音,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的isMute替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
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}`);
- });
isMute(deprecated)
isMute(volumeType: AudioVolumeType): Promise<boolean>
获取指定音量流是否被静音,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的isMute替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
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}.`);
- });
isActive(deprecated)
isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
获取指定音量流是否为活跃状态,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的isActive替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
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}.`);
- });
isActive(deprecated)
isActive(volumeType: AudioVolumeType): Promise<boolean>
获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的isActive替代。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
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}.`);
- });
setRingerMode(deprecated)
setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void
设置铃声模式,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。
需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY
仅在静音和非静音状态切换时需要该权限。
系统能力: SystemCapability.Multimedia.Audio.Communication
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | 是 | 音频铃声模式。 | |
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.');
- });
setRingerMode(deprecated)
setRingerMode(mode: AudioRingMode): Promise<void>
设置铃声模式,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃。替代接口能力仅对系统应用开放。
需要权限: ohos.permission.ACCESS_NOTIFICATION_POLICY
仅在静音和非静音状态切换时需要该权限。
系统能力: SystemCapability.Multimedia.Audio.Communication
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | 是 | 音频铃声模式。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise回调返回设置成功或失败。 |
示例:
- audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
- console.info('Promise returned to indicate a successful setting of the ringer mode.');
- });
getRingerMode(deprecated)
getRingerMode(callback: AsyncCallback<AudioRingMode>): void
获取铃声模式,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getRingerMode替代。
系统能力: 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}.`);
- });
getRingerMode(deprecated)
getRingerMode(): Promise<AudioRingMode>
获取铃声模式,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的getRingerMode替代。
系统能力: SystemCapability.Multimedia.Audio.Communication
返回值:
类型 | 说明 |
---|---|
Promise<AudioRingMode> | Promise回调返回系统的铃声模式。 |
示例:
- audioManager.getRingerMode().then((value) => {
- console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
- });
getDevices(deprecated)
getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void
获取音频设备列表,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的getDevices替代。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
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.');
- });
getDevices(deprecated)
getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
获取音频设备列表,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的getDevices替代。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
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.');
- });
setDeviceActive(deprecated)
setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback<void>): void
设置设备激活状态,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的setCommunicationDevice替代。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceType | 是 | 活跃音频设备类型。 | |
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.');
- });
setDeviceActive(deprecated)
setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise<void>
设置设备激活状态,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的setCommunicationDevice替代。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceType | 是 | 活跃音频设备类型。 | |
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.');
- });
isDeviceActive(deprecated)
isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback<boolean>): void
获取指定设备的激活状态,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的isCommunicationDeviceActive替代。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceType | 是 | 活跃音频设备类型。 | |
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.');
- });
isDeviceActive(deprecated)
isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>
获取指定设备的激活状态,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的isCommunicationDeviceActive替代。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceType | 是 | 活跃音频设备类型。 |
返回值:
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}.`);
- });
setMicrophoneMute(deprecated)
setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void
设置麦克风静音状态,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的setMicrophoneMute替代。
需要权限: ohos.permission.MICROPHONE
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 |
callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 |
示例:
- 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.');
- });
setMicrophoneMute(deprecated)
setMicrophoneMute(mute: boolean): Promise<void>
设置麦克风静音状态,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的setMicrophoneMute替代。
需要权限: ohos.permission.MICROPHONE
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise回调返回设置成功或失败。 |
示例:
- audioManager.setMicrophoneMute(true).then(() => {
- console.info('Promise returned to indicate that the microphone is muted.');
- });
isMicrophoneMute(deprecated)
isMicrophoneMute(callback: AsyncCallback<boolean>): void
获取麦克风静音状态,使用callback方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的isMicrophoneMute替代。
需要权限: 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}.`);
- });
isMicrophoneMute(deprecated)
isMicrophoneMute(): Promise<boolean>
获取麦克风静音状态,使用Promise方式异步返回结果。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的isMicrophoneMute替代。
需要权限: ohos.permission.MICROPHONE
系统能力: SystemCapability.Multimedia.Audio.Device
返回值:
类型 | 说明 |
---|---|
Promise<boolean> | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
示例:
- audioManager.isMicrophoneMute().then((value) => {
- console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
- });
on('deviceChange')(deprecated)
on(type: 'deviceChange', callback: Callback<DeviceChangeAction>): void
设备更改。音频设备连接状态变化。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的on替代。
系统能力: 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} `);
- });
off('deviceChange')(deprecated)
off(type: 'deviceChange', callback?: Callback<DeviceChangeAction>): void
取消订阅音频设备连接变化事件。
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的off替代。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' |
callback | Callback<DeviceChangeAction> | 否 | 获取设备更新详情。 |
示例:
- audioManager.off('deviceChange', (deviceChanged) => {
- console.info('Should be no callback.');
- });
on('interrupt')
on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback<InterruptAction>): void
请求焦点并开始监听音频打断事件(当应用程序的音频被另一个播放事件中断,回调通知此应用程序)。
与on('audioInterrupt')作用一致,均用于监听焦点变化。为无音频流的场景(未曾创建AudioRenderer对象),比如FM、语音唤醒等提供焦点变化监听功能。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 |
interrupt | AudioInterrupt | 是 | 音频打断事件类型的参数。 |
callback | Callback<InterruptAction> | 是 | 音频打断事件回调方法。 |
示例:
- 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} `);
- }
- });
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} `);
- }
- });
getVolumeGroupManager9+
getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager>): void
获取音频组管理器,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
groupId | number | 是 | 音量组id。 |
callback | AsyncCallback<AudioVolumeGroupManager> | 是 | 回调,返回一个音量组实例。 |
示例:
- let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
- audioVolumeManager.getVolumeGroupManager(groupid, (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.');
- });
getVolumeGroupManager9+
getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>
获取音频组管理器,使用promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
groupId | number | 是 | 音量组id。 |
返回值:
类型 | 说明 |
---|---|
Promise< AudioVolumeGroupManager > | 音量组实例。 |
示例:
- let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
- let audioVolumeGroupManager;
- getVolumeGroupManager();
- async function getVolumeGroupManager(){
- audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
- console.info('Callback invoked to indicate that the volume group infos list is obtained.');
- }
on('volumeChange')9+
on(type: 'volumeChange', callback: Callback<VolumeEvent>): void
监听系统音量变化事件,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件回调类型,支持的事件为:'volumeChange'。 |
callback | Callback<VolumeEvent> | 是 | 回调方法。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- audioVolumeManager.on('volumeChange', (volumeEvent) => {
- console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
- console.info(`Volume level: ${volumeEvent.volume} `);
- console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
- });
getVolume9+
getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的音量,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
callback | AsyncCallback<number> | 是 | 回调返回音量大小。 |
示例:
- audioVolumeGroupManager.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.');
- });
getVolume9+
getVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的音量,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise回调返回音量大小。 |
示例:
- audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
- });
getMinVolume9+
getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的最小音量,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
callback | AsyncCallback<number> | 是 | 回调返回最小音量。 |
示例:
- audioVolumeGroupManager.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}`);
- });
getMinVolume9+
getMinVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的最小音量,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise回调返回最小音量。 |
示例:
- audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
- });
getMaxVolume9+
getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的最大音量,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
callback | AsyncCallback<number> | 是 | 回调返回最大音量大小。 |
示例:
- audioVolumeGroupManager.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}`);
- });
getMaxVolume9+
getMaxVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的最大音量,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise回调返回最大音量大小。 |
示例:
- audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
- console.info('Promised returned to indicate that the maximum volume is obtained.');
- });
isMute9+
isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
获取指定音量流是否被静音,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 | |
callback | AsyncCallback<boolean> | 是 | 回调返回流静音状态,true为静音,false为非静音。 |
示例:
- audioVolumeGroupManager.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}.`);
- });
isMute9+
isMute(volumeType: AudioVolumeType): Promise<boolean>
获取指定音量流是否被静音,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音量流类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<boolean> | Promise回调返回流静音状态,true为静音,false为非静音。 |
示例:
- audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
- });
getRingerMode9+
getRingerMode(callback: AsyncCallback<AudioRingMode>): void
获取铃声模式,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<AudioRingMode> | 是 | 回调返回系统的铃声模式。 |
示例:
- audioVolumeGroupManager.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}.`);
- });
getRingerMode9+
getRingerMode(): Promise<AudioRingMode>
获取铃声模式,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
返回值:
类型 | 说明 |
---|---|
Promise<AudioRingMode> | Promise回调返回系统的铃声模式。 |
示例:
- audioVolumeGroupManager.getRingerMode().then((value) => {
- console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
- });
on('ringerModeChange')9+
on(type: 'ringerModeChange', callback: Callback<AudioRingMode>): void
监听铃声模式变化事件。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
callback | Callback<AudioRingMode> | 是 | 回调方法。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- audioVolumeGroupManager.on('ringerModeChange', (ringerMode) => {
- console.info(`Updated ringermode: ${ringerMode}`);
- });
setMicrophoneMute9+
setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void
设置麦克风静音状态,使用callback方式异步返回结果。
需要权限: ohos.permission.MANAGE_AUDIO_CONFIG
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 |
callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 |
示例:
- audioVolumeGroupManager.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.');
- });
setMicrophoneMute9+
setMicrophoneMute(mute: boolean): Promise<void>
设置麦克风静音状态,使用Promise方式异步返回结果。
需要权限: ohos.permission.MANAGE_AUDIO_CONFIG
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise回调返回设置成功或失败。 |
示例:
- audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
- console.info('Promise returned to indicate that the microphone is muted.');
- });
isMicrophoneMute9+
isMicrophoneMute(callback: AsyncCallback<boolean>): void
获取麦克风静音状态,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<boolean> | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
示例:
- audioVolumeGroupManager.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}.`);
- });
isMicrophoneMute9+
isMicrophoneMute(): Promise<boolean>
获取麦克风静音状态,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Volume
返回值:
类型 | 说明 |
---|---|
Promise<boolean> | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
示例:
- audioVolumeGroupManager.isMicrophoneMute().then((value) => {
- console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
- });
on('micStateChange')9+
on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void
监听系统麦克风状态更改事件。
目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
系统能力: SystemCapability.Multimedia.Audio.Volume
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件回调类型,支持的事件为:'micStateChange'(系统麦克风状态变化事件,检测到系统麦克风状态改变时,触发该事件)。 |
callback | Callback<MicStateChangeEvent> | 是 | 回调方法,返回变更后的麦克风状态。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- audioVolumeGroupManager.on('micStateChange', (micStateChange) => {
- console.info(`Current microphone status is: ${micStateChange.mute} `);
- });
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}`);
- }
- }
- }
- }
- });
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}`);
- });
- }
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}`);
- }
- }
- }
- }
- });
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}`);
- });
- }
on('audioRendererChange')9+
on(type: "audioRendererChange", callback: Callback<AudioRendererChangeInfoArray>): void
监听音频渲染器更改事件。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件类型,支持的事件'audioRendererChange':当音频渲染器发生更改时触发。 |
callback | Callback<AudioRendererChangeInfoArray> | 是 | 回调函数。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- 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}`);
- }
- }
- });
off('audioRendererChange')9+
off(type: "audioRendererChange"): void
取消监听音频渲染器更改事件。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件类型,支持的事件'audioRendererChange':音频渲染器更改事件。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- audioStreamManager.off('audioRendererChange');
- console.info('######### RendererChange Off is called #########');
on('audioCapturerChange')9+
on(type: "audioCapturerChange", callback: Callback<AudioCapturerChangeInfoArray>): void
监听音频采集器更改事件。
系统能力: SystemCapability.Multimedia.Audio.Capturer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件类型,支持的事件'audioCapturerChange':当音频采集器发生更改时触发。 |
callback | Callback<AudioCapturerChangeInfoArray> | 是 | 回调函数。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- 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}`);
- let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
- for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`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}`);
- }
- }
- });
off('audioCapturerChange')9+
off(type: "audioCapturerChange"): void;
取消监听音频采集器更改事件。
系统能力: SystemCapability.Multimedia.Audio.Capturer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件类型,支持的事件'audioCapturerChange':音频采集器更改事件。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- audioStreamManager.off('audioCapturerChange');
- console.info('######### CapturerChange Off is called #########');
isActive9+
isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
获取指定音频流是否为活跃状态,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音频流类型。 | |
callback | AsyncCallback<boolean> | 是 | 回调返回流的活跃状态,true为活跃,false为不活跃。 |
示例:
- audioStreamManager.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}.`);
- });
isActive9+
isActive(volumeType: AudioVolumeType): Promise<boolean>
获取指定音频流是否为活跃状态,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volumeType | 是 | 音频流类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<boolean> | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |
示例:
- audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
- });
AudioRoutingManager9+
音频路由管理。在使用AudioRoutingManager的接口前,需要使用getRoutingManager获取AudioRoutingManager实例。
getDevices9+
getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void
获取音频设备列表,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceFlag | 是 | 设备类型的flag。 | |
callback | AsyncCallback<AudioDeviceDescriptors> | 是 | 回调,返回设备列表。 |
示例:
- 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.');
- });
getDevices9+
getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
获取音频设备列表,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceFlag | 是 | 设备类型的flag。 |
返回值:
类型 | 说明 |
---|---|
Promise<AudioDeviceDescriptors> | Promise回调返回设备列表。 |
示例:
- audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
- console.info('Promise returned to indicate that the device list is obtained.');
- });
on9+
on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback<DeviceChangeAction>): void
设备更改。音频设备连接状态变化。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' |
deviceFlag | 是 | 设备类型的flag。 | |
callback | Callback<DeviceChangeAction> | 是 | 获取设备更新详情。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- 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);
- });
off9+
off(type: 'deviceChange', callback?: Callback<DeviceChangeAction>): void
取消订阅音频设备连接变化事件。
系统能力: SystemCapability.Multimedia.Audio.Device
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' |
callback | Callback<DeviceChangeAction> | 否 | 获取设备更新详情。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- audioRoutingManager.off('deviceChange', (deviceChanged) => {
- console.info('Should be no callback.');
- });
setCommunicationDevice9+
setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void
设置通信设备激活状态,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Communication
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceType | 是 | 音频设备类型。 | |
active | boolean | 是 | 设备激活状态。 |
callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 |
示例:
- audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.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.');
- });
setCommunicationDevice9+
setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void>
设置通信设备激活状态,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Communication
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceType | 是 | 活跃音频设备类型。 | |
active | boolean | 是 | 设备激活状态。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise回调返回设置成功或失败。 |
示例:
- audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
- console.info('Promise returned to indicate that the device is set to the active status.');
- });
isCommunicationDeviceActive9+
isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void
获取指定通信设备的激活状态,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Communication
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceType | 是 | 活跃音频设备类型。 | |
callback | AsyncCallback<boolean> | 是 | 回调返回设备的激活状态。 |
示例:
- audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.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.');
- });
isCommunicationDeviceActive9+
isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>
获取指定通信设备的激活状态,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Communication
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceType | 是 | 活跃音频设备类型。 |
返回值:
Type | Description |
---|---|
Promise<boolean> | Promise回调返回设备的激活状态。 |
示例:
- audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value) => {
- console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
- });
AudioRendererChangeInfoArray9+
数组类型,AudioRenderChangeInfo数组,只读。
系统能力: SystemCapability.Multimedia.Audio.Renderer
AudioRendererChangeInfo9+
描述音频渲染器更改信息。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
streamId | number | 是 | 否 | 音频流唯一id。 |
rendererInfo | 是 | 否 | 音频渲染器信息。 | |
deviceDescriptors | 是 | 否 | 音频设备描述。 |
示例:
- import audio from '@ohos.multimedia.audio';
- const audioManager = audio.getAudioManager();
- let audioStreamManager = audioManager.getStreamManager();
- let resultFlag = false;
- audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- console.info(`## RendererChange on is called for ${i} ##`);
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
- console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
- console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
- console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
- let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
- for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
- resultFlag = true;
- console.info(`ResultFlag for ${i} is: ${resultFlag}`);
- }
- }
- });
AudioCapturerChangeInfoArray9+
数组类型,AudioCapturerChangeInfo数组,只读。
系统能力: SystemCapability.Multimedia.Audio.Capturer
AudioCapturerChangeInfo9+
描述音频采集器更改信息。
系统能力: SystemCapability.Multimedia.Audio.Capturer
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
streamId | number | 是 | 否 | 音频流唯一id。 |
capturerInfo | 是 | 否 | 音频采集器信息。 | |
deviceDescriptors | 是 | 否 | 音频设备描述。 |
示例:
- import audio from '@ohos.multimedia.audio';
- const audioManager = audio.getAudioManager();
- let audioStreamManager = audioManager.getStreamManager();
- 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(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
- console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
- let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
- for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
- resultFlag = true;
- console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
- }
- }
- });
AudioDeviceDescriptor
描述音频设备。
系统能力: SystemCapability.Multimedia.Audio.Device
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
deviceRole | 是 | 否 | 设备角色。 | |
deviceType | 是 | 否 | 设备类型。 | |
id9+ | number | 是 | 否 | 设备id,唯一。 |
name9+ | string | 是 | 否 | 设备名称。 |
address9+ | string | 是 | 否 | 设备地址。 |
sampleRates9+ | Array<number> | 是 | 否 | 支持的采样率。 |
channelCounts9+ | Array<number> | 是 | 否 | 支持的通道数。 |
channelMasks9+ | Array<number> | 是 | 否 | 支持的通道掩码。 |
示例:
- 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');
- }
- });
属性
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
state8+ | 是 | 否 | 音频渲染器的状态。 |
示例:
- let state = audioRenderer.state;
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}`);
- });
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}`);
- });
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}`);
- });
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}`);
- });
getAudioStreamId9+
getAudioStreamId(callback: AsyncCallback<number>): void
获取音频流id,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 回调返回音频流id。 |
示例:
- audioRenderer.getAudioStreamId((err, streamid) => {
- console.info(`Renderer GetStreamId: ${streamid}`);
- });
getAudioStreamId9+
getAudioStreamId(): Promise<number>
获取音频流id,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise返回音频流id。 |
示例:
- audioRenderer.getAudioStreamId().then((streamid) => {
- console.info(`Renderer getAudioStreamId: ${streamid}`);
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
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.');
- }
- });
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}`);
- });
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.');
- }
- });
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}`);
- });
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.');
- }
- });
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}`);
- });
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.');
- }
- });
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}`);
- });
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.');
- }
- });
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}`);
- });
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 file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
- let stat = await fs.stat(path);
- let buf = new ArrayBuffer(bufferSize);
- let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
- for (let i = 0;i < len; i++) {
- let options = {
- offset: i * bufferSize,
- length: bufferSize
- }
- let readsize = await fs.read(file.fd, buf, options)
- let writeSize = await new Promise((resolve,reject)=>{
- audioRenderer.write(buf,(err,writeSize)=>{
- if(err){
- reject(err)
- }else{
- resolve(writeSize)
- }
- })
- })
- }
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 file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
- let stat = await fs.stat(path);
- let buf = new ArrayBuffer(bufferSize);
- let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
- for (let i = 0;i < len; i++) {
- let options = {
- offset: i * bufferSize,
- length: bufferSize
- }
- let readsize = await fs.read(file.fd, buf, options)
- try{
- let writeSize = await audioRenderer.write(buf);
- } catch(err) {
- console.error(`audioRenderer.write err: ${err}`);
- }
- }
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}`);
- });
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}`);
- });
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');
- }
- });
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}`);
- });
setRenderRate8+
setRenderRate(rate: AudioRendererRate, callback: AsyncCallback<void>): void
设置音频渲染速率。使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
rate | 是 | 渲染的速率。 | |
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.');
- }
- });
setRenderRate8+
setRenderRate(rate: AudioRendererRate): Promise<void>
设置音频渲染速率。使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
rate | 是 | 渲染的速率。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise用于返回执行结果。 |
示例:
- audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
- console.info('setRenderRate SUCCESS');
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
getRenderRate8+
getRenderRate(callback: AsyncCallback<AudioRendererRate>): void
获取当前渲染速率。使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<AudioRendererRate> | 是 | 回调返回渲染速率。 |
示例:
- audioRenderer.getRenderRate((err, renderrate) => {
- console.info(`getRenderRate: ${renderrate}`);
- });
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}`);
- });
setInterruptMode9+
setInterruptMode(mode: InterruptMode): Promise<void>
设置应用的焦点模型。使用Promise异步回调。
系统能力: SystemCapability.Multimedia.Audio.Interrupt
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | 是 | 焦点模型。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
示例:
- let mode = 0;
- audioRenderer.setInterruptMode(mode).then(data=>{
- console.info('setInterruptMode Success!');
- }).catch((err) => {
- console.error(`setInterruptMode Fail: ${err}`);
- });
setInterruptMode9+
setInterruptMode(mode: InterruptMode, callback: AsyncCallback<void>): void
设置应用的焦点模型。使用Callback回调返回执行结果。
系统能力: SystemCapability.Multimedia.Audio.Interrupt
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | 是 | 焦点模型。 | |
callback | AsyncCallback<void> | 是 | 回调返回执行结果。 |
示例:
- let mode = 1;
- audioRenderer.setInterruptMode(mode, (err, data)=>{
- if(err){
- console.error(`setInterruptMode Fail: ${err}`);
- }
- console.info('setInterruptMode Success!');
- });
setVolume9+
setVolume(volume: number): Promise<void>
设置应用的音量。使用Promise异步回调。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volume | number | 是 | 音量值范围为0.0-1.0。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
示例:
- audioRenderer.setVolume(0.5).then(data=>{
- console.info('setVolume Success!');
- }).catch((err) => {
- console.error(`setVolume Fail: ${err}`);
- });
setVolume9+
setVolume(volume: number, callback: AsyncCallback<void>): void
设置应用的音量。使用Callback回调返回执行结果。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
volume | number | 是 | 音量值范围为0.0-1.0。 |
callback | AsyncCallback<void> | 是 | 回调返回执行结果。 |
示例:
- audioRenderer.setVolume(0.5, (err, data)=>{
- if(err){
- console.error(`setVolume Fail: ${err}`);
- }
- console.info('setVolume Success!');
- });
on('audioInterrupt')9+
on(type: 'audioInterrupt', callback: Callback<InterruptEvent>): void
监听音频中断事件。使用callback获取中断事件。
与on('interrupt')一致,均用于监听焦点变化,AudioRenderer对象start事件发生时主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。
系统能力: SystemCapability.Multimedia.Audio.Interrupt
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频播放被中断。) |
callback | Callback<InterruptEvent> | 是 | 被监听的中断事件的回调。 |
错误码:
以下错误码的详细介绍请参见音频错误码。
错误码ID | 错误信息 |
---|---|
6800101 | if input parameter value error |
示例:
- let isPlay;
- let started;
- onAudioInterrupt();
- async function onAudioInterrupt(){
- audioRenderer.on('audioInterrupt', 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;
- }
- }
- });
- }
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');
- }
- });
off('markReach') 8+
off(type: 'markReach'): void
取消订阅标记事件。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 要取消订阅事件的类型。支持的事件为:'markReach'。 |
示例:
- audioRenderer.off('markReach');
on('periodReach') 8+
on(type: "periodReach", frame: number, callback: Callback<number>): void
订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,触发回调并返回设定的值。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 |
frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 |
callback | Callback<number> | 是 | 触发事件时调用的回调。 |
示例:
- audioRenderer.on('periodReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
- }
- });
off('periodReach') 8+
off(type: 'periodReach'): void
取消订阅标记事件。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 要取消订阅事件的类型。支持的事件为:'periodReach'。 |
示例:
- audioRenderer.off('periodReach')
on('stateChange') 8+
on(type: 'stateChange', callback: Callback<AudioState>): void
订阅监听状态变化。
系统能力: SystemCapability.Multimedia.Audio.Renderer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件回调类型,支持的事件为:'stateChange'。 |
callback | 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');
- }
- });
属性
系统能力: SystemCapability.Multimedia.Audio.Capturer
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
state8+ | 是 | 否 | 音频采集器状态。 |
示例:
- let state = audioCapturer.state;
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}`);
- }
- });
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}`);
- });
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}`);
- }
- });
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}`);
- });
getAudioStreamId9+
getAudioStreamId(callback: AsyncCallback<number>): void
获取音频流id,使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Capturer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 回调返回音频流id。 |
示例:
- audioCapturer.getAudioStreamId((err, streamid) => {
- console.info(`audioCapturer GetStreamId: ${streamid}`);
- });
getAudioStreamId9+
getAudioStreamId(): Promise<number>
获取音频流id,使用Promise方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise返回音频流id。 |
示例:
- audioCapturer.getAudioStreamId().then((streamid) => {
- console.info(`audioCapturer getAudioStreamId: ${streamid}`);
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
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.');
- }
- });
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}`);
- });
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.');
- }
- });
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}`);
- });
release8+
release(callback: AsyncCallback<void>): void
释放采集器。使用callback方式异步返回结果。
系统能力: SystemCapability.Multimedia.Audio.Capturer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 使用callback方式异步返回结果。 |
示例:
- audioCapturer.release((err) => {
- if (err) {
- console.error('capturer release failed');
- } else {
- console.info('capturer released.');
- }
- });
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}`);
- });
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');
- }
- });
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}`);
- });
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}`);
- });
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}`);
- });
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}`);
- });
- }
- });
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}`);
- });
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');
- }
- });
off('markReach')8+
off(type: 'markReach'): void
取消订阅标记到达的事件。
系统能力: SystemCapability.Multimedia.Audio.Capturer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 取消事件回调类型,支持的事件为:'markReach'。 |
示例:
- audioCapturer.off('markReach');
on('periodReach')8+
on(type: "periodReach", frame: number, callback: Callback<number>): void
订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,触发回调并返回设定的值。
系统能力: SystemCapability.Multimedia.Audio.Capturer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 |
frame | number | 是 | 触发事件的帧数。 该值必须大于0。 |
callback | Callback<number> | 是 | 使用callback方式异步返回被触发事件的回调 |
示例:
- audioCapturer.on('periodReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
- }
- });
off('periodReach')8+
off(type: 'periodReach'): void
取消订阅标记到达的事件。
系统能力: SystemCapability.Multimedia.Audio.Capturer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 取消事件回调类型,支持的事件为:'periodReach'。 |
示例:
- audioCapturer.off('periodReach')
on('stateChange') 8+
on(type: 'stateChange', callback: Callback<AudioState>): void
订阅监听状态变化。
系统能力: SystemCapability.Multimedia.Audio.Capturer
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 事件回调类型,支持的事件为:'stateChange'。 |
callback | 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');
- }
- });
ActiveDeviceType(deprecated)
枚举,活跃设备类型。
从 API version 9 开始废弃,建议使用CommunicationDeviceType替代。
系统能力: SystemCapability.Multimedia.Audio.Device
名称 | 值 | 说明 |
---|---|---|
SPEAKER | 2 | 扬声器。 |
BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |
InterruptActionType(deprecated)
枚举,中断事件返回类型。
从 API version 7 开始支持,从 API version 9 开始废弃。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 值 | 说明 |
---|---|---|
TYPE_ACTIVATED | 0 | 表示触发焦点事件。 |
TYPE_INTERRUPT | 1 | 表示音频打断事件。 |
AudioInterrupt(deprecated)
音频监听事件传入的参数。
从 API version 7 开始支持,从 API version 9 开始废弃。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
streamUsage | 是 | 音频流使用类型。 | |
contentType | 是 | 音频打断媒体类型。 | |
pauseWhenDucked | boolean | 是 | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 |
InterruptAction(deprecated)
音频打断/获取焦点事件的回调方法。
从 API version 7 开始支持,从 API version 9 开始废弃。建议使用InterruptEvent替代。
系统能力: SystemCapability.Multimedia.Audio.Renderer
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
actionType | 是 | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 | |
type | 否 | 打断事件类型。 | |
hint | 否 | 打断事件提示。 | |
activated | boolean | 否 |
更多建议: