• 鸿蒙开发接口媒体:【@ohos.multimedia.audio (音频管理)】


    音频管理

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

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

    • [AudioManager]:音频管理。
    • [AudioRenderer]:音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。
    • [AudioCapturer]:音频采集,用于录制PCM音频数据。
    说明:  本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

    导入模块

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

    audio.getAudioManager

    getAudioManager(): AudioManager

    获取音频管理器。

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

    返回值:

    类型说明
    [AudioManager]音频管理类。

    示例:

    var audioManager = audio.getAudioManager();

    audio.createAudioRenderer8+

    createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback): void

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

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

    参数

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

    示例:

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

    audio.createAudioRenderer8+

    createAudioRenderer(options: AudioRendererOptions): Promise

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

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

    参数:

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

    返回值:

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

    示例:

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

    audio.createAudioCapturer8+

    createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    audio.createAudioCapturer8+

    createAudioCapturer(options: AudioCapturerOptions): Promise

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

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

    参数:

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

    返回值:

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

    示例:

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

    AudioVolumeType

    枚举,音频流类型。

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

    名称默认值描述
    VOICE_CALL8+0语音电话。
    RINGTONE2铃声。
    MEDIA3媒体。
    VOICE_ASSISTANT8+9语音助手。

    DeviceFlag

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

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

    名称默认值描述
    OUTPUT_DEVICES_FLAG1输出设备。
    INPUT_DEVICES_FLAG2输入设备。
    ALL_DEVICES_FLAG3所有设备。

    DeviceRole

    枚举,设备角色。

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

    名称默认值描述
    INPUT_DEVICE1输入设备角色。
    OUTPUT_DEVICE2输出设备角色。

    DeviceType

    枚举,设备类型。

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

    名称默认值描述
    INVALID0无效设备。
    EARPIECE1听筒。
    SPEAKER2扬声器。
    WIRED_HEADSET3有线耳机,带麦克风。
    WIRED_HEADPHONES4有线耳机,无麦克风。
    BLUETOOTH_SCO7蓝牙设备SCO(Synchronous Connection Oriented)连接。
    BLUETOOTH_A2DP8蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。
    MIC15麦克风。
    USB_HEADSET22USB耳机,带麦克风。

    ActiveDeviceType

    枚举,活跃设备类型。

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

    名称默认值描述
    SPEAKER2扬声器。
    BLUETOOTH_SCO7蓝牙设备SCO(Synchronous Connection Oriented)连接。

    AudioRingMode

    枚举,铃声模式。

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

    名称默认值描述
    RINGER_MODE_SILENT0静音模式。
    RINGER_MODE_VIBRATE1震动模式。
    RINGER_MODE_NORMAL2响铃模式。

    AudioSampleFormat8+

    枚举,音频采样格式。

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

    名称默认值描述
    SAMPLE_FORMAT_INVALID-1无效格式。
    SAMPLE_FORMAT_U80无符号8位整数。
    SAMPLE_FORMAT_S16LE1带符号的16位整数,小尾数。
    SAMPLE_FORMAT_S24LE2带符号的24位整数,小尾数。
    SAMPLE_FORMAT_S32LE3带符号的32位整数,小尾数。

    AudioChannel8+

    枚举, 音频声道。

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

    名称默认值描述
    CHANNEL_10x1 << 0单声道。
    CHANNEL_20x1 << 1双声道。

    AudioSamplingRate8+

    枚举,音频采样率。

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

    名称默认值描述
    SAMPLE_RATE_80008000采样率为8000。
    SAMPLE_RATE_1102511025采样率为11025。
    SAMPLE_RATE_1200012000采样率为12000。
    SAMPLE_RATE_1600016000采样率为16000。
    SAMPLE_RATE_2205022050采样率为22050。
    SAMPLE_RATE_2400024000采样率为24000。
    SAMPLE_RATE_3200032000采样率为32000。
    SAMPLE_RATE_4410044100采样率为44100。
    SAMPLE_RATE_4800048000采样率为48000。
    SAMPLE_RATE_6400064000采样率为64000。
    SAMPLE_RATE_9600096000采样率为96000。

    AudioEncodingType8+

    枚举,音频编码类型。

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

    名称默认值描述
    ENCODING_TYPE_INVALID-1无效。
    ENCODING_TYPE_RAW0PCM编码。

    ContentType

    枚举,音频内容类型。

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

    名称默认值描述
    CONTENT_TYPE_UNKNOWN0未知类型。
    CONTENT_TYPE_SPEECH1语音。
    CONTENT_TYPE_MUSIC2音乐。
    CONTENT_TYPE_MOVIE3电影。
    CONTENT_TYPE_SONIFICATION4加密类型。
    CONTENT_TYPE_RINGTONE8+5铃声。

    StreamUsage

    枚举,音频流使用类型。

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

    名称默认值描述
    STREAM_USAGE_UNKNOWN0未知类型。
    STREAM_USAGE_MEDIA1音频。
    STREAM_USAGE_VOICE_COMMUNICATION2语音通信。
    STREAM_USAGE_NOTIFICATION_RINGTONE6通知铃声。

    AudioState8+

    枚举,音频状态。

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

    名称默认值描述
    STATE_INVALID-1无效状态。
    STATE_NEW0创建新实例状态。
    STATE_PREPARED1准备状态。
    STATE_RUNNING2可运行状态。
    STATE_STOPPED3停止状态。
    STATE_RELEASED4释放状态。
    STATE_PAUSED5暂停状态。

    AudioRendererRate8+

    枚举,音频渲染速度。

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

    名称默认值描述
    RENDER_RATE_NORMAL0正常速度。
    RENDER_RATE_DOUBLE12倍速。
    RENDER_RATE_HALF20.5倍数。

    InterruptType

    枚举,中断类型。

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

    名称默认值描述
    INTERRUPT_TYPE_BEGIN1音频播放中断事件开始。
    INTERRUPT_TYPE_END2音频播放中断事件结束。

    InterruptForceType9+

    枚举,强制打断类型。

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

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

    InterruptHint

    枚举,中断提示。

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

    名称默认值描述
    INTERRUPT_HINT_NONE8+0无提示。
    INTERRUPT_HINT_RESUME1提示音频恢复。
    INTERRUPT_HINT_PAUSE2提示音频暂停。
    INTERRUPT_HINT_STOP3提示音频停止。
    INTERRUPT_HINT_DUCK4提示音频躲避。(躲避:音量减弱,而不会停止)
    INTERRUPT_HINT_UNDUCK8+5提示音量恢复。

    InterruptActionType

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

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

    名称默认值描述
    TYPE_ACTIVATED0表示触发焦点事件。
    TYPE_INTERRUPT1表示音频打断事件。

    AudioStreamInfo8+

    音频流信息。

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

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

    AudioRendererInfo8+

    音频渲染器信息。

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

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

    AudioRendererOptions8+

    音频渲染器选项信息。

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

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

    InterruptEvent9+

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

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

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

    AudioInterrupt

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

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

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

    InterruptAction

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

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

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

    VolumeEvent8+

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

    此接口为系统接口,三方应用不支持调用。

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

    名称类型必填说明
    volumeType[AudioVolumeType]音量流类型。
    volumenumber音量等级,可设置范围通过getMinVolume和getMaxVolume获取。
    updateUiboolean在UI中显示音量变化。

    DeviceChangeAction

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

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

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

    DeviceChangeType

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

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

    名称默认值描述
    CONNECT0设备连接。
    DISCONNECT1断开设备连接。

    AudioCapturerOptions8+

    音频采集器选项信息。

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

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

    AudioCapturerInfo8+[]()

    描述音频采集器信息。

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

    名称类型必填说明
    source[SourceType]音源类型。
    capturerFlagsnumber音频采集器标志。

    SourceType8+[]()

    枚举,音源类型。

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

    名称默认值描述
    SOURCE_TYPE_INVALID-1无效的音频源。
    SOURCE_TYPE_MIC0Mic音频源。
    SOURCE_TYPE_VOICE_COMMUNICATION7语音通话场景的音频源。

    AudioScene8+[]()

    枚举,音频场景。

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

    名称默认值描述
    AUDIO_SCENE_DEFAULT0默认音频场景。
    AUDIO_SCENE_RINGING1响铃模式。 此接口为系统接口,三方应用不支持调用。
    AUDIO_SCENE_PHONE_CALL2电话模式。 此接口为系统接口,三方应用不支持调用。
    AUDIO_SCENE_VOICE_CHAT3语音聊天模式。

    AudioManager

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

    setVolume

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

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

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

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

    参数:

    参数名类型必填说明
    volumeType[AudioVolumeType]音量流类型。
    volumenumber音量等级,可设置范围通过getMinVolume和getMaxVolume获取。
    callbackAsyncCallback回调表示成功还是失败。

    示例:

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

    setVolume

    setVolume(volumeType: AudioVolumeType, volume: number): Promise

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

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调表示成功还是失败。

    示例:

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

    getVolume

    getVolume(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    volumeType[AudioVolumeType]音量流类型。
    callbackAsyncCallback回调返回音量大小。

    示例:

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

    getVolume

    getVolume(volumeType: AudioVolumeType): Promise

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调返回音量大小。

    示例:

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

    getMinVolume

    getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    volumeType[AudioVolumeType]音量流类型。
    callbackAsyncCallback回调返回最小音量。

    示例:

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

    getMinVolume

    getMinVolume(volumeType: AudioVolumeType): Promise

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调返回最小音量。

    示例:

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

    getMaxVolume

    getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    volumeType[AudioVolumeType]音量流类型。
    callbackAsyncCallback回调返回最大音量大小。

    示例:

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

    getMaxVolume

    getMaxVolume(volumeType: AudioVolumeType): Promise

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

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

    参数:

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

    返回值:

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

    示例:

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

    mute

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

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

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

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

    参数:

    参数名类型必填说明
    volumeType[AudioVolumeType]音量流类型。
    muteboolean静音状态,true为静音,false为非静音。
    callbackAsyncCallback回调表示成功还是失败。

    示例:

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

    mute

    mute(volumeType: AudioVolumeType, mute: boolean): Promise

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

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调表示成功还是失败。

    示例:

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

    isMute

    isMute(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    volumeType[AudioVolumeType]音量流类型。
    callbackAsyncCallback回调返回流静音状态,true为静音,false为非静音。

    示例:

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

    isMute

    isMute(volumeType: AudioVolumeType): Promise

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调返回流静音状态,true为静音,false为非静音。

    示例:

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

    isActive

    isActive(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    volumeType[AudioVolumeType]音量流类型。
    callbackAsyncCallback回调返回流的活跃状态,true为活跃,false为不活跃。

    示例:

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

    isActive

    isActive(volumeType: AudioVolumeType): Promise

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调返回流的活跃状态,true为活跃,false为不活跃。

    示例:

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

    setRingerMode

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

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

    需要权限:  ohos.permission.ACCESS_NOTIFICATION_POLICY,仅在静音和非静音状态切换时需要该权限。

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

    参数:

    参数名类型必填说明
    mode[AudioRingMode]音频铃声模式。
    callbackAsyncCallback回调返回设置成功或失败。

    示例:

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

    setRingerMode

    setRingerMode(mode: AudioRingMode): Promise

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

    需要权限:  ohos.permission.ACCESS_NOTIFICATION_POLICY,仅在静音和非静音状态切换时需要该权限。

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调返回设置成功或失败。

    示例:

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

    getRingerMode

    getRingerMode(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    getRingerMode

    getRingerMode(): Promise

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

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

    返回值:

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

    示例:

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

    setAudioParameter

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

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

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

    需要权限:  ohos.permission.MODIFY_AUDIO_SETTINGS

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

    参数:

    参数名类型必填说明
    keystring被设置的音频参数的键。
    valuestring被设置的音频参数的值。
    callbackAsyncCallback回调返回设置成功或失败。

    示例:

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

    setAudioParameter

    setAudioParameter(key: string, value: string): Promise

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

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

    需要权限:  ohos.permission.MODIFY_AUDIO_SETTINGS

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

    参数:

    参数名类型必填说明
    keystring被设置的音频参数的键。
    valuestring被设置的音频参数的值。

    返回值:

    类型说明
    PromisePromise回调返回设置成功或失败。

    示例:

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

    getAudioParameter

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

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

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

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

    参数:

    参数名类型必填说明
    keystring待获取的音频参数的键。
    callbackAsyncCallback回调返回获取的音频参数的值。

    示例:

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

    getAudioParameter

    getAudioParameter(key: string): Promise

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

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调返回获取的音频参数的值。

    示例:

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

    getDevices

    getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    getDevices

    getDevices(deviceFlag: DeviceFlag): Promise

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

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

    参数:

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

    返回值:

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

    示例:

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

    setDeviceActive

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

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

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

    参数:

    参数名类型必填说明
    deviceType[ActiveDeviceType]活跃音频设备类型。
    activeboolean设备激活状态。
    callbackAsyncCallback回调返回设置成功或失败。

    示例:

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

    setDeviceActive

    setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调返回设置成功或失败。

    示例:

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

    isDeviceActive

    isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    deviceType[ActiveDeviceType]活跃音频设备类型。
    callbackAsyncCallback回调返回设备的激活状态。

    示例:

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

    isDeviceActive

    isDeviceActive(deviceType: ActiveDeviceType): Promise

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

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

    参数:

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

    返回值:

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

    示例:

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

    setMicrophoneMute

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

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

    需要权限:  ohos.permission.MICROPHONE

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

    参数:

    参数名类型必填说明
    muteboolean待设置的静音状态,true为静音,false为非静音。
    callbackAsyncCallback回调返回设置成功或失败。

    示例:

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

    setMicrophoneMute

    setMicrophoneMute(mute: boolean): Promise

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

    需要权限:  ohos.permission.MICROPHONE

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

    参数:

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

    返回值:

    类型说明
    PromisePromise回调返回设置成功或失败。

    示例:

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

    isMicrophoneMute

    isMicrophoneMute(callback: AsyncCallback): void

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

    需要权限:  ohos.permission.MICROPHONE

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

    参数:

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

    示例:

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

    isMicrophoneMute

    isMicrophoneMute(): Promise

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

    需要权限:  ohos.permission.MICROPHONE

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

    返回值:

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

    示例:

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

    on('volumeChange')8+

    on(type: 'volumeChange', callback: Callback): void

    监听系统音量变化事件。

    此接口为系统接口,三方应用不支持调用。

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

    参数:

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

    示例:

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

    on('ringerModeChange')8+

    on(type: 'ringerModeChange', callback: Callback): void

    监听铃声模式变化事件。

    此接口为系统接口,三方应用不支持调用。

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

    参数:

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

    示例:

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

    on('deviceChange')

    on(type: 'deviceChange', callback: Callback): void

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

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

    参数:

    参数名类型必填说明
    typestring订阅的事件的类型。支持事件:'deviceChange'
    callbackCallback<[DeviceChangeAction]>获取设备更新详情。

    示例:

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

    off('deviceChange')

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

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

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

    参数:

    参数名类型必填说明
    typestring订阅的事件的类型。支持事件:'deviceChange'
    callbackCallback<[DeviceChangeAction]>获取设备更新详情。

    示例:

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

    on('interrupt')

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

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

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

    参数:

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

    示例:

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

    off('interrupt')

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

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

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

    参数:

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

    示例:

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

    setAudioScene8+

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

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

    此接口为系统接口,三方应用不支持调用。

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

    参数:

    参数名类型必填说明
    scene[AudioScene]音频场景模式。
    callbackAsyncCallback用于返回结果的回调。

    示例:

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

    setAudioScene8+

    setAudioScene(scene: AudioScene): Promise

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

    此接口为系统接口,三方应用不支持调用。

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

    参数:

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

    返回值:

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

    示例:

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

    getAudioScene8+

    getAudioScene(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    getAudioScene8+

    getAudioScene(): Promise

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

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

    返回值:

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

    示例:

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

    AudioDeviceDescriptor

    描述音频设备。

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

    名称类型可读可写说明
    deviceRole[DeviceRole]设备角色。
    deviceType[DeviceType]设备类型。

    AudioDeviceDescriptors

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

    示例:

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

    AudioRenderer8+

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

    属性

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

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

    示例:

    var state = audioRenderer.state;

    getRendererInfo8+

    getRendererInfo(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    getRendererInfo8+

    getRendererInfo(): Promise

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

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

    返回值:

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

    示例:

    1. var resultFlag = true;
    2. audioRenderer.getRendererInfo().then((rendererInfo) => {
    3. console.log('Renderer GetRendererInfo:');
    4. console.log('Renderer content:' + rendererInfo.content);
    5. console.log('Renderer usage:' + rendererInfo.usage);
    6. console.log('Renderer flags:' + rendererInfo.rendererFlags);
    7. }).catch((err) => {
    8. console.log('AudioFrameworkRenderLog: RendererInfo :ERROR: '+err.message);
    9. resultFlag = false;
    10. });

    getStreamInfo8+

    getStreamInfo(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    getStreamInfo8+

    getStreamInfo(): Promise

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

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

    返回值:

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

    示例:

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

    start8+

    start(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallback回调函数。

    示例:

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

    start8+

    start(): Promise

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

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

    返回值:

    类型说明
    PromisePromise方式异步返回结果。

    示例:

    1. audioRenderer.start().then(() => {
    2. console.log('Renderer started');
    3. }).catch((err) => {
    4. console.log('ERROR: '+err.message);
    5. });

    pause8+

    pause(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallback返回回调的结果。

    示例:

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

    pause8+

    pause(): Promise

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

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

    返回值:

    类型说明
    PromisePromise方式异步返回结果。

    示例:

    1. audioRenderer.pause().then(() => {
    2. console.log('Renderer paused');
    3. }).catch((err) => {
    4. console.log('ERROR: '+err.message);
    5. });

    drain8+

    drain(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallback返回回调的结果。

    示例:

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

    drain8+

    drain(): Promise

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

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

    返回值:

    类型说明
    PromisePromise方式异步返回结果。

    示例:

    1. audioRenderer.drain().then(() => {
    2. console.log('Renderer drained successfully');
    3. }).catch((err) => {
    4. console.log('ERROR: '+err.message);
    5. });

    stop8+

    stop(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallback返回回调的结果。

    示例:

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

    stop8+

    stop(): Promise

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

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

    返回值:

    类型说明
    PromisePromise方式异步返回结果。

    示例:

    1. audioRenderer.stop().then(() => {
    2. console.log('Renderer stopped successfully');
    3. }).catch((err) => {
    4. console.log('ERROR: '+err.message);
    5. });

    release8+

    release(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallback返回回调的结果。

    示例:

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

    release8+

    release(): Promise

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

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

    返回值:

    类型说明
    PromisePromise方式异步返回结果。

    示例:

    1. audioRenderer.release().then(() => {
    2. console.log('Renderer released successfully');
    3. }).catch((err) => {
    4. console.log('ERROR: '+err.message);
    5. });

    write8+

    write(buffer: ArrayBuffer, callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    bufferArrayBuffer要写入缓冲区的数据。
    callbackAsyncCallback回调如果成功,返回写入的字节数,否则返回errorcode。

    示例:

    1. import audio from '@ohos.multimedia.audio';
    2. import fileio from '@ohos.fileio';
    3. import featureAbility from '@ohos.ability.featureAbility'
    4. var audioStreamInfo = {
    5. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
    6. channels: audio.AudioChannel.CHANNEL_2,
    7. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    8. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
    9. }
    10. var audioRendererInfo = {
    11. content: audio.ContentType.CONTENT_TYPE_SPEECH,
    12. usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION
    13. rendererFlags: 1
    14. }
    15. var audioRendererOptions = {
    16. streamInfo: audioStreamInfo,
    17. rendererInfo: audioRendererInfo
    18. }
    19. var audioRenderer;
    20. audio.createAudioRenderer(audioRendererOptions).then((data)=> {
    21. audioRenderer = data;
    22. console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    23. }).catch((err) => {
    24. console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    25. });
    26. var bufferSize;
    27. audioRenderer.getBufferSize().then((data)=> {
    28. console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    29. bufferSize = data;
    30. }).catch((err) => {
    31. console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
    32. });
    33. console.info('Buffer size:'+bufferSize);
    34. var context = featureAbility.getContext();
    35. var path = await context.getCacheDir();
    36. var filePath = path+"/StarWars10s-2C-48000-4SW.wav"
    37. let ss = fileio.createStreamSync(filePath, 'r');
    38. let buf = new ArrayBuffer(bufferSize);
    39. ss.readSync(buf);
    40. audioRenderer.write(buf, (err, writtenbytes) => {
    41. if (writtenbytes < 0) {
    42. console.error('write failed.');
    43. } else {
    44. console.log('Actual written bytes: ' + writtenbytes);
    45. }
    46. });

    write8+

    write(buffer: ArrayBuffer): Promise

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

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

    返回值:

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

    示例:

    1. import audio from '@ohos.multimedia.audio';
    2. import fileio from '@ohos.fileio';
    3. import featureAbility from '@ohos.ability.featureAbility'
    4. var audioStreamInfo = {
    5. samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
    6. channels:audio.AudioChannel.CHANNEL_2,
    7. sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    8. encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
    9. }
    10. var audioRendererInfo = {
    11. content: audio.ContentType.CONTENT_TYPE_SPEECH,
    12. usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    13. rendererFlags: 1
    14. }
    15. var audioRendererOptions = {
    16. streamInfo: audioStreamInfo,
    17. rendererInfo: audioRendererInfo
    18. }
    19. var audioRenderer;
    20. audio.createAudioRenderer(audioRendererOptions).then((data) => {
    21. audioRenderer = data;
    22. console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    23. }).catch((err) => {
    24. console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    25. });
    26. var bufferSize;
    27. audioRenderer.getBufferSize().then((data) => {
    28. console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    29. bufferSize = data;
    30. }).catch((err) => {
    31. console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
    32. });
    33. console.info('BufferSize: ' + bufferSize);
    34. var context = featureAbility.getContext();
    35. var path = await context.getCacheDir();
    36. var filePath = 'data/StarWars10s-2C-48000-4SW.wav';
    37. let ss = fileio.createStreamSync(filePath, 'r');
    38. let buf = new ArrayBuffer(bufferSize);
    39. ss.readSync(buf);
    40. audioRenderer.write(buf).then((writtenbytes) => {
    41. if (writtenbytes < 0) {
    42. console.error('write failed.');
    43. } else {
    44. console.log('Actual written bytes: ' + writtenbytes);
    45. }
    46. }).catch((err) => {
    47. console.log('ERROR: '+err.message);
    48. });

    getAudioTime8+

    getAudioTime(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallback回调返回时间戳。

    示例:

    1. audioRenderer.getAudioTime((err, timestamp) => {
    2. console.log('Current timestamp: ' + timestamp);
    3. });

    getAudioTime8+

    getAudioTime(): Promise

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

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

    返回值:

    类型描述
    PromisePromise回调返回时间戳。

    示例:

    1. audioRenderer.getAudioTime().then((timestamp) => {
    2. console.log('Current timestamp: ' + timestamp);
    3. }).catch((err) => {
    4. console.log('ERROR: '+err.message);
    5. });

    getBufferSize8+

    getBufferSize(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallback回调返回缓冲区大小。

    示例:

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

    getBufferSize8+

    getBufferSize(): Promise

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

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

    返回值:

    类型说明
    Promisepromise回调返回缓冲区大小。

    示例:

    1. import audio from '@ohos.multimedia.audio';
    2. import fileio from '@ohos.fileio';
    3. var audioStreamInfo = {
    4. samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
    5. channels:audio.AudioChannel.CHANNEL_2,
    6. sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    7. encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
    8. }
    9. var audioRendererInfo = {
    10. content: audio.ContentType.CONTENT_TYPE_SPEECH,
    11. usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    12. rendererFlags: 1
    13. }
    14. var audioRendererOptions = {
    15. streamInfo: audioStreamInfo,
    16. rendererInfo: audioRendererInfo
    17. }
    18. var audioRenderer;
    19. audio.createAudioRenderer(audioRendererOptions).then((data) => {
    20. audioRenderer = data;
    21. console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    22. }).catch((err) => {
    23. console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    24. });
    25. var bufferSize;
    26. audioRenderer.getBufferSize().then((data) => {
    27. console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    28. bufferSize=data;
    29. }).catch((err) => {
    30. console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
    31. });

    setRenderRate8+

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

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

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

    参数:

    参数名类型必填说明
    rate[AudioRendererRate]渲染的速率。
    callbackAsyncCallback用于返回执行结果的回调。

    示例:

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

    setRenderRate8+

    setRenderRate(rate: AudioRendererRate): Promise

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

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

    参数:

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

    返回值:

    类型说明
    PromisePromise用于返回执行结果。

    示例:

    1. audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
    2. console.log('setRenderRate SUCCESS');
    3. }).catch((err) => {
    4. console.log('ERROR: '+err.message);
    5. });

    getRenderRate8+

    getRenderRate(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

    1. audioRenderer.getRenderRate((err, renderrate) => {
    2. console.log('getRenderRate: ' + renderrate);
    3. });

    getRenderRate8+

    getRenderRate(): Promise

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

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

    返回值:

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

    示例:

    1. audioRenderer.getRenderRate().then((renderRate) => {
    2. console.log('getRenderRate: ' + renderRate);
    3. }).catch((err) => {
    4. console.log('ERROR: '+err.message);
    5. });

    on('interrupt')9+

    on(type: 'interrupt', callback: Callback): void

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

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

    参数:

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

    示例:

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

    on('markReach')8+

    on(type: 'markReach', frame: number, callback: (position: number) => {}): void

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

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

    参数:

    参数名类型必填说明
    typestring事件回调类型,支持的事件为:'markReach'。
    framenumber触发事件的帧数。 该值必须大于 0。
    callback(position: number) => {}触发事件时调用的回调。

    示例:

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

    off('markReach') 8+

    off(type: 'markReach'): void

    取消订阅标记事件。

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

    参数:

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

    示例:

    audioRenderer.off('markReach');

    on('periodReach') 8+

    on(type: "periodReach", frame: number, callback: (position: number) => {}): void

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

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

    参数:

    参数名类型必填说明
    typestring事件回调类型,支持的事件为:'periodReach'。
    framenumber触发事件的帧数。 该值必须大于 0。
    callback(position: number) => {}触发事件时调用的回调。

    示例:

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

    off('periodReach') 8+

    off(type: 'periodReach'): void

    取消订阅标记事件。

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

    参数:

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

    示例:

    audioRenderer.off('periodReach')

    on('stateChange') 8+

    on(type: 'stateChange', callback: Callback): void

    订阅监听状态变化。

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

    参数:

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

    示例:

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

    AudioCapturer8+

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

    属性

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

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

    示例:

    var state = audioCapturer.state;

    getCapturerInfo8+

    getCapturerInfo(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    getCapturerInfo8+

    getCapturerInfo(): Promise

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

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

    返回值:

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

    示例:

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

    getStreamInfo8+

    getStreamInfo(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    getStreamInfo8+

    getStreamInfo(): Promise

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

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

    返回值:

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

    示例:

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

    start8+

    start(callback: AsyncCallback): void

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

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

    参数

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

    示例:

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

    start8+

    start(): Promise

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

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

    返回值:

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

    示例:

    1. import audio from '@ohos.multimedia.audio';
    2. import fileio from '@ohos.fileio';
    3. var audioStreamInfo = {
    4. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
    5. channels: audio.AudioChannel.CHANNEL_2,
    6. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
    7. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
    8. }
    9. var audioCapturerInfo = {
    10. source: audio.SourceType.SOURCE_TYPE_MIC,
    11. capturerFlags = 1
    12. }
    13. var audioCapturer;
    14. audio.createAudioCapturer(audioCapturerOptions).then((data) => {
    15. audioCapturer = data;
    16. console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS');
    17. }).catch((err) => {
    18. console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: '+err.message);
    19. });
    20. audioCapturer.start().then(() => {
    21. console.info('AudioFrameworkRecLog: ---------START---------');
    22. console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
    23. console.info('AudioFrameworkRecLog: AudioCapturer: STATE: '+audioCapturer.state);
    24. console.info('AudioFrameworkRecLog: Capturer started: SUCCESS ');
    25. if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
    26. console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
    27. }
    28. }).catch((err) => {
    29. console.info('AudioFrameworkRecLog: Capturer start :ERROR : '+err.message);
    30. stateFlag=false;
    31. });

    stop8+

    stop(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

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

    stop8+

    stop(): Promise

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

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

    返回值:

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

    示例:

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

    release8+

    release(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallbackCallback used to return the result.

    示例:

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

    release8+

    release(): Promise

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

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

    返回值:

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

    示例:

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

    read8+

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

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

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

    参数

    参数名类型必填说明
    sizenumber读入的字节数。
    isBlockingReadboolean是否阻塞读操作。
    callbackAsyncCallback使用callback方式异步返回缓冲区。

    示例:

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

    read8+

    read(size: number, isBlockingRead: boolean): Promise

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

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

    参数:

    参数名类型必填说明
    sizenumber读入的字节数。
    isBlockingReadboolean是否阻塞读操作。

    返回值:

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

    示例:

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

    getAudioTime8+

    getAudioTime(callback: AsyncCallback): void

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

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

    参数:

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

    示例:

    1. audioCapturer.getAudioTime((err, timestamp) => {
    2. console.log('Current timestamp: ' + timestamp);
    3. });

    getAudioTime8+

    getAudioTime(): Promise

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

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

    返回值:

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

    示例:

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

    getBufferSize8+

    getBufferSize(callback: AsyncCallback): void

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

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

    参数:

    参数名类型必填说明
    callbackAsyncCallback使用callback方式异步返回缓冲区大小。

    示例:

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

    getBufferSize8+

    getBufferSize(): Promise

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

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

    返回值:

    类型说明
    Promise使用Promise方式异步返回缓冲区大小。

    示例:

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

    on('markReach')8+

    on(type: 'markReach', frame: number, callback: (position: number) => {}): void

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

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

    参数:

    参数名类型必填说明
    typestring事件回调类型,支持的事件为:'markReach'。
    framenumber触发事件的帧数。 该值必须大于0。
    callbackposition: number) => {}使用callback方式异步返回被触发事件的回调。

    示例:

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

    off('markReach')8+

    off(type: 'markReach'): void

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

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

    参数:

    参数名类型必填说明
    typestring取消事件回调类型,支持的事件为:'markReach'。

    示例:

    audioCapturer.off('markReach');

    on('periodReach')8+

    on(type: "periodReach", frame: number, callback: (position: number) => {}): void

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

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

    参数:

    参数名类型必填说明
    typestring事件回调类型,支持的事件为:'periodReach'。
    framenumber触发事件的帧数。 该值必须大于0。
    callback(position: number) => {}使用callback方式异步返回被触发事件的回调

    示例:

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

    off('periodReach')8+

    off(type: 'periodReach'): void

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

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

    参数:

    参数名类型必填说明
    typestringYes取消事件回调类型,支持的事件为:'periodReach'。

    示例:

    audioCapturer.off('periodReach')

    on('stateChange') 8+

    on(type: 'stateChange', callback: Callback): void

    订阅监听状态变化。

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

    参数:

    参数名类型必填说明 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿
    typestring事件回调类型,支持的事件为:'stateChange'。
    callback[AudioState]返回监听的状态。

    搜狗高速浏览器截图20240326151344.png


    示例:

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

    鸿蒙语言有TS、ArkTS等语法,那么除了这些基础知识之外,其核心技术点有那些呢?下面就用一张整理出的鸿蒙学习路线图表示:

    从上面的OpenHarmony技术梳理来看,鸿蒙的学习内容也是很多的。现在全网的鸿蒙学习文档也是非常的少,下面推荐一些:完整内容可在头像页保存,或这qr23.cn/AKFP8k甲助力

    内容包含:《鸿蒙NEXT星河版开发学习文档》

    • ArkTS
    • 声明式ArkUI
    • 多媒体
    • 通信问题
    • 系统移植
    • 系统裁剪
    • FW层的原理
    • 各种开发调试工具
    • 智能设备开发
    • 分布式开发等等。

    这些就是对往后开发者的分享,希望大家多多点赞关注喔!

  • 相关阅读:
    冒泡排序c++
    高中物理:力、物体和平衡
    WebRTC ULPFEC
    网络篇 DHCP静态绑定地址-17.1
    oracle数据库导入导出
    [机缘参悟-57]:《素书》-4-修身养志[本德宗道章第四]
    [ 笔记 ] 计算机网络安全_5_防火墙原理与设计
    大数据快速入门开发环境篇:CentOS 7安装配置Hadoop大数据框架开发环境
    Sentinel-限流降级
    【专项测试系列】- 缓存击穿、穿透、雪崩专项测试
  • 原文地址:https://blog.csdn.net/2301_76813281/article/details/139333803