0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā)接口媒體:【@ohos.multimedia.audio (音頻管理)】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-31 09:53 ? 次閱讀

音頻管理

音頻管理提供管理音頻的一些基礎(chǔ)能力,包括對(duì)音頻音量、音頻設(shè)備的管理,以及對(duì)音頻數(shù)據(jù)的采集和渲染等。

該模塊提供以下音頻相關(guān)的常用功能:

  • [AudioManager]:音頻管理。
  • [AudioRenderer]:音頻渲染,用于播放PCM(Pulse Code Modulation)音頻數(shù)據(jù)。
  • [AudioCapturer]:音頻采集,用于錄制PCM音頻數(shù)據(jù)。

說(shuō)明: 本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

導(dǎo)入模塊

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

audio.getAudioManager

getAudioManager(): AudioManager

獲取音頻管理器。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

返回值:

類型說(shuō)明
[AudioManager]音頻管理類。

示例:

var audioManager = audio.getAudioManager();

audio.createAudioRenderer8+

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

獲取音頻渲染器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù)

參數(shù)名類型必填說(shuō)明
options[AudioRendererOptions]配置渲染器。
callbackAsyncCallback<[AudioRenderer]>音頻渲染器對(duì)象。

示例:

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

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    rendererFlags: 1
}

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

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

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions): Promise

獲取音頻渲染器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
options[AudioRendererOptions]配置渲染器。

返回值:

類型說(shuō)明
Promise<[AudioRenderer]>音頻渲染器對(duì)象。

示例:

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

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

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    rendererFlags: 1
}

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

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

audio.createAudioCapturer8+

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

獲取音頻采集器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
options[AudioCapturerOptions]配置音頻采集器。
callbackAsyncCallback<[AudioCapturer]>音頻采集器對(duì)象。

示例:

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

var audioCapturerInfo = {
    source: audio.SourceType.SOURCE_TYPE_MIC,
    capturerFlags: 1
}

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

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

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions): Promise

獲取音頻采集器。使用promise 方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
options[AudioCapturerOptions]配置音頻采集器。

返回值:

類型說(shuō)明
Promise<[AudioCapturer]>音頻采集器對(duì)象

示例:

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

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

var audioCapturerInfo = {
    source: audio.SourceType.SOURCE_TYPE_MIC,
    capturerFlags: 1
}

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

var audioCapturer;
audio.createAudioRenderer(audioCapturerOptions).then((data) = > {
    audioCapturer = data;
    console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
}).catch((err) = > {
    console.info('AudioCapturer Created : ERROR : '+err.message);
});

AudioVolumeType

枚舉,音頻流類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Volume

名稱默認(rèn)值描述
VOICE_CALL8+0語(yǔ)音電話。
RINGTONE2鈴聲。
MEDIA3媒體。
VOICE_ASSISTANT8+9語(yǔ)音助手。

DeviceFlag

枚舉,可獲取的設(shè)備種類。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device

名稱默認(rèn)值描述
OUTPUT_DEVICES_FLAG1輸出設(shè)備。
INPUT_DEVICES_FLAG2輸入設(shè)備。
ALL_DEVICES_FLAG3所有設(shè)備。

DeviceRole

枚舉,設(shè)備角色。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device

名稱默認(rèn)值描述
INPUT_DEVICE1輸入設(shè)備角色。
OUTPUT_DEVICE2輸出設(shè)備角色。

DeviceType

枚舉,設(shè)備類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device

名稱默認(rèn)值描述
INVALID0無(wú)效設(shè)備。
EARPIECE1聽筒。
SPEAKER2揚(yáng)聲器。
WIRED_HEADSET3有線耳機(jī),帶麥克風(fēng)。
WIRED_HEADPHONES4有線耳機(jī),無(wú)麥克風(fēng)。
BLUETOOTH_SCO7藍(lán)牙設(shè)備SCO(Synchronous Connection Oriented)連接。
BLUETOOTH_A2DP8藍(lán)牙設(shè)備A2DP(Advanced Audio Distribution Profile)連接。
MIC15麥克風(fēng)。
USB_HEADSET22USB耳機(jī),帶麥克風(fēng)。

ActiveDeviceType

枚舉,活躍設(shè)備類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device

名稱默認(rèn)值描述
SPEAKER2揚(yáng)聲器。
BLUETOOTH_SCO7藍(lán)牙設(shè)備SCO(Synchronous Connection Oriented)連接。

AudioRingMode

枚舉,鈴聲模式。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Communication

名稱默認(rèn)值描述
RINGER_MODE_SILENT0靜音模式。
RINGER_MODE_VIBRATE1震動(dòng)模式。
RINGER_MODE_NORMAL2響鈴模式。

AudioSampleFormat8+

枚舉,音頻采樣格式。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱默認(rèn)值描述
SAMPLE_FORMAT_INVALID-1無(wú)效格式。
SAMPLE_FORMAT_U80無(wú)符號(hào)8位整數(shù)。
SAMPLE_FORMAT_S16LE1帶符號(hào)的16位整數(shù),小尾數(shù)。
SAMPLE_FORMAT_S24LE2帶符號(hào)的24位整數(shù),小尾數(shù)。
SAMPLE_FORMAT_S32LE3帶符號(hào)的32位整數(shù),小尾數(shù)。

AudioChannel8+

枚舉, 音頻聲道。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱默認(rèn)值描述
CHANNEL_10x1 << 0單聲道。
CHANNEL_20x1 << 1雙聲道。

AudioSamplingRate8+

枚舉,音頻采樣率。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱默認(rèn)值描述
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+

枚舉,音頻編碼類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱默認(rèn)值描述
ENCODING_TYPE_INVALID-1無(wú)效。
ENCODING_TYPE_RAW0PCM編碼。

ContentType

枚舉,音頻內(nèi)容類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱默認(rèn)值描述
CONTENT_TYPE_UNKNOWN0未知類型。
CONTENT_TYPE_SPEECH1語(yǔ)音。
CONTENT_TYPE_MUSIC2音樂。
CONTENT_TYPE_MOVIE3電影。
CONTENT_TYPE_SONIFICATION4加密類型。
CONTENT_TYPE_RINGTONE8+5鈴聲。

StreamUsage

枚舉,音頻流使用類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱默認(rèn)值描述
STREAM_USAGE_UNKNOWN0未知類型。
STREAM_USAGE_MEDIA1音頻。
STREAM_USAGE_VOICE_COMMUNICATION2語(yǔ)音通信
STREAM_USAGE_NOTIFICATION_RINGTONE6通知鈴聲。

AudioState8+

枚舉,音頻狀態(tài)。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱默認(rèn)值描述
STATE_INVALID-1無(wú)效狀態(tài)。
STATE_NEW0創(chuàng)建新實(shí)例狀態(tài)。
STATE_PREPARED1準(zhǔn)備狀態(tài)。
STATE_RUNNING2可運(yùn)行狀態(tài)。
STATE_STOPPED3停止?fàn)顟B(tài)。
STATE_RELEASED4釋放狀態(tài)。
STATE_PAUSED5暫停狀態(tài)。

AudioRendererRate8+

枚舉,音頻渲染速度。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認(rèn)值描述
RENDER_RATE_NORMAL0正常速度。
RENDER_RATE_DOUBLE12倍速。
RENDER_RATE_HALF20.5倍數(shù)。

InterruptType

枚舉,中斷類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認(rèn)值描述
INTERRUPT_TYPE_BEGIN1音頻播放中斷事件開始。
INTERRUPT_TYPE_END2音頻播放中斷事件結(jié)束。

InterruptForceType9+

枚舉,強(qiáng)制打斷類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認(rèn)值描述
INTERRUPT_FORCE0由系統(tǒng)進(jìn)行操作,強(qiáng)制打斷音頻播放。
INTERRUPT_SHARE1由應(yīng)用進(jìn)行操作,可以選擇打斷或忽略。

InterruptHint

枚舉,中斷提示。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認(rèn)值描述
INTERRUPT_HINT_NONE8+0無(wú)提示。
INTERRUPT_HINT_RESUME1提示音頻恢復(fù)。
INTERRUPT_HINT_PAUSE2提示音頻暫停。
INTERRUPT_HINT_STOP3提示音頻停止。
INTERRUPT_HINT_DUCK4提示音頻躲避。(躲避:音量減弱,而不會(huì)停止)
INTERRUPT_HINT_UNDUCK8+5提示音量恢復(fù)。

InterruptActionType

枚舉,中斷事件返回類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認(rèn)值描述
TYPE_ACTIVATED0表示觸發(fā)焦點(diǎn)事件。
TYPE_INTERRUPT1表示音頻打斷事件。

AudioStreamInfo8+

音頻流信息。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱類型必填說(shuō)明
samplingRate[AudioSamplingRate]音頻文件的采樣率。
channels[AudioChannel]音頻文件的通道數(shù)。
sampleFormat[AudioSampleFormat]音頻采樣格式。
encodingType[AudioEncodingType]音頻編碼格式。

AudioRendererInfo8+

音頻渲染器信息。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱類型必填說(shuō)明
content[ContentType]媒體類型。
usage[StreamUsage]音頻流使用類型。
rendererFlagsnumber音頻渲染器標(biāo)志。

AudioRendererOptions8+

音頻渲染器選項(xiàng)信息。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱類型必填說(shuō)明
streamInfo[AudioStreamInfo]表示音頻流信息。
rendererInfo[AudioRendererInfo]表示渲染器信息。

InterruptEvent9+

播放中斷時(shí),應(yīng)用接收的中斷事件。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱類型必填說(shuō)明
eventType[InterruptType]中斷事件類型,開始或是結(jié)束。
forceType[InterruptForceType]操作是由系統(tǒng)執(zhí)行或是由應(yīng)用程序執(zhí)行。
hintType[InterruptHint]中斷提示。

AudioInterrupt

音頻監(jiān)聽事件傳入的參數(shù)。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱類型必填說(shuō)明
streamUsage[StreamUsage]音頻流使用類型。
contentType[ContentType]音頻打斷媒體類型。
pauseWhenDuckedboolean音頻打斷時(shí)是否可以暫停音頻播放(true表示音頻播放可以在音頻打斷期間暫停,false表示相反)。

InterruptAction

音頻打斷/獲取焦點(diǎn)事件的回調(diào)方法。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer

名稱類型必填說(shuō)明
actionType[InterruptActionType]事件返回類型。TYPE_ACTIVATED為焦點(diǎn)觸發(fā)事件,TYPE_INTERRUPT為音頻打斷事件。
type[InterruptType]打斷事件類型。
hint[InterruptHint]打斷事件提示。
activatedboolean獲得/釋放焦點(diǎn)。true表示焦點(diǎn)獲取/釋放成功,false表示焦點(diǎn)獲得/釋放失敗。

VolumeEvent8+

音量改變時(shí),應(yīng)用接收的事件。

此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Volume

名稱類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
volumenumber音量等級(jí),可設(shè)置范圍通過(guò)getMinVolume和getMaxVolume獲取。
updateUiboolean在UI中顯示音量變化。

DeviceChangeAction

描述設(shè)備連接狀態(tài)變化和設(shè)備信息。

**系統(tǒng)能力:**SystemCapability.Multimedia.Audio.Device

名稱類型必填說(shuō)明
type[DeviceChangeType]設(shè)備連接狀態(tài)變化。
deviceDescriptors[AudioDeviceDescriptors]設(shè)備信息。

DeviceChangeType

枚舉,設(shè)備連接狀態(tài)變化。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device

名稱默認(rèn)值描述
CONNECT0設(shè)備連接。
DISCONNECT1斷開設(shè)備連接。

AudioCapturerOptions8+

音頻采集器選項(xiàng)信息。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Capturer

名稱類型必填說(shuō)明
streamInfo[AudioStreamInfo]表示音頻流信息。
capturerInfo[AudioCapturerInfo]表示采集器信息。

AudioCapturerInfo8+[]()

描述音頻采集器信息。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱類型必填說(shuō)明
source[SourceType]音源類型。
capturerFlagsnumber音頻采集器標(biāo)志。

SourceType8+[]()

枚舉,音源類型。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core

名稱默認(rèn)值描述
SOURCE_TYPE_INVALID-1無(wú)效的音頻源。
SOURCE_TYPE_MIC0Mic音頻源。
SOURCE_TYPE_VOICE_COMMUNICATION7語(yǔ)音通話場(chǎng)景的音頻源。

AudioScene8+[]()

枚舉,音頻場(chǎng)景。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Communication

名稱默認(rèn)值描述
AUDIO_SCENE_DEFAULT0默認(rèn)音頻場(chǎng)景。
AUDIO_SCENE_RINGING1響鈴模式。 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
AUDIO_SCENE_PHONE_CALL2電話模式。 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
AUDIO_SCENE_VOICE_CHAT3語(yǔ)音聊天模式。

AudioManager

管理音頻音量和音頻設(shè)備。在調(diào)用AudioManager的接口前,需要先通過(guò)getAudioManager創(chuàng)建實(shí)例。

setVolume

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

設(shè)置指定流的音量,使用callback方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
volumenumber音量等級(jí),可設(shè)置范圍通過(guò)getMinVolume和getMaxVolume獲取。
callbackAsyncCallback回調(diào)表示成功還是失敗。

示例:

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

setVolume

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

設(shè)置指定流的音量,使用Promise方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
volumenumber音量等級(jí),可設(shè)置范圍通過(guò)getMinVolume和getMaxVolume獲取。

返回值:

類型說(shuō)明
PromisePromise回調(diào)表示成功還是失敗。

示例:

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

getVolume

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

獲取指定流的音量,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調(diào)返回音量大小。

示例:

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

getVolume

getVolume(volumeType: AudioVolumeType): Promise

獲取指定流的音量,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回音量大小。

示例:

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

getMinVolume

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

獲取指定流的最小音量,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調(diào)返回最小音量。

示例:

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

getMinVolume

getMinVolume(volumeType: AudioVolumeType): Promise

獲取指定流的最小音量,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回最小音量。

示例:

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

getMaxVolume

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

獲取指定流的最大音量,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調(diào)返回最大音量大小。

示例:

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

getMaxVolume

getMaxVolume(volumeType: AudioVolumeType): Promise

獲取指定流的最大音量,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回最大音量大小。

示例:

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

mute

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

設(shè)置指定音量流靜音,使用callback方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
muteboolean靜音狀態(tài),true為靜音,false為非靜音。
callbackAsyncCallback回調(diào)表示成功還是失敗。

示例:

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

mute

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

設(shè)置指定音量流靜音,使用Promise方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
muteboolean靜音狀態(tài),true為靜音,false為非靜音。

返回值:

類型說(shuō)明
PromisePromise回調(diào)表示成功還是失敗。

示例:

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

isMute

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

獲取指定音量流是否被靜音,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。

示例:

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

isMute

isMute(volumeType: AudioVolumeType): Promise

獲取指定音量流是否被靜音,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。

示例:

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

isActive

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

獲取指定音量流是否為活躍狀態(tài),使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。

示例:

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

isActive

isActive(volumeType: AudioVolumeType): Promise

獲取指定音量流是否為活躍狀態(tài),使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。

示例:

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

setRingerMode

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

設(shè)置鈴聲模式,使用callback方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名類型必填說(shuō)明
mode[AudioRingMode]音頻鈴聲模式。
callbackAsyncCallback回調(diào)返回設(shè)置成功或失敗。

示例:

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

setRingerMode

setRingerMode(mode: AudioRingMode): Promise

設(shè)置鈴聲模式,使用Promise方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名類型必填說(shuō)明
mode[AudioRingMode]音頻鈴聲模式。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回設(shè)置成功或失敗。

示例:

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

getRingerMode

getRingerMode(callback: AsyncCallback): void

獲取鈴聲模式,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[AudioRingMode]>回調(diào)返回系統(tǒng)的鈴聲模式。

示例:

audioManager.getRingerMode((err, value) = > {
   if (err) {
       console.error('Failed to obtain the ringer mode.? ${err.message}');
       return;
   }
   console.log('Callback invoked to indicate that the ringer mode is obtained.' + value);
});

getRingerMode

getRingerMode(): Promise

獲取鈴聲模式,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

返回值:

類型說(shuō)明
Promise<[AudioRingMode]>Promise回調(diào)返回系統(tǒng)的鈴聲模式。

示例:

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

setAudioParameter

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

音頻參數(shù)設(shè)置,使用callback方式異步返回結(jié)果。

本接口的使用場(chǎng)景為根據(jù)硬件設(shè)備支持能力擴(kuò)展音頻配置。在不同的設(shè)備平臺(tái)上,所支持的音頻參數(shù)會(huì)存在差異。示例代碼內(nèi)使用樣例參數(shù),實(shí)際支持的音頻配置參數(shù)見具體設(shè)備平臺(tái)的資料描述。

需要權(quán)限: ohos.permission.MODIFY_AUDIO_SETTINGS

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

參數(shù):

參數(shù)名類型必填說(shuō)明
keystring被設(shè)置的音頻參數(shù)的鍵。
valuestring被設(shè)置的音頻參數(shù)的值。
callbackAsyncCallback回調(diào)返回設(shè)置成功或失敗。

示例:

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

setAudioParameter

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

音頻參數(shù)設(shè)置,使用Promise方式異步返回結(jié)果。

本接口的使用場(chǎng)景為根據(jù)硬件設(shè)備支持能力擴(kuò)展音頻配置。在不同的設(shè)備平臺(tái)上,所支持的音頻參數(shù)會(huì)存在差異。示例代碼內(nèi)使用樣例參數(shù),實(shí)際支持的音頻配置參數(shù)見具體設(shè)備平臺(tái)的資料描述。

需要權(quán)限: ohos.permission.MODIFY_AUDIO_SETTINGS

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

參數(shù):

參數(shù)名類型必填說(shuō)明
keystring被設(shè)置的音頻參數(shù)的鍵。
valuestring被設(shè)置的音頻參數(shù)的值。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回設(shè)置成功或失敗。

示例:

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

getAudioParameter

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

獲取指定音頻參數(shù)值,使用callback方式異步返回結(jié)果。

本接口的使用場(chǎng)景為根據(jù)硬件設(shè)備支持能力擴(kuò)展音頻配置。在不同的設(shè)備平臺(tái)上,所支持的音頻參數(shù)會(huì)存在差異。示例代碼內(nèi)使用樣例參數(shù),實(shí)際支持的音頻配置參數(shù)見具體設(shè)備平臺(tái)的資料描述。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

參數(shù):

參數(shù)名類型必填說(shuō)明
keystring待獲取的音頻參數(shù)的鍵。
callbackAsyncCallback回調(diào)返回獲取的音頻參數(shù)的值。

示例:

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

getAudioParameter

getAudioParameter(key: string): Promise

獲取指定音頻參數(shù)值,使用Promise方式異步返回結(jié)果。

本接口的使用場(chǎng)景為根據(jù)硬件設(shè)備支持能力擴(kuò)展音頻配置。在不同的設(shè)備平臺(tái)上,所支持的音頻參數(shù)會(huì)存在差異。示例代碼內(nèi)使用樣例參數(shù),實(shí)際支持的音頻配置參數(shù)見具體設(shè)備平臺(tái)的資料描述。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

參數(shù):

參數(shù)名類型必填說(shuō)明
keystring待獲取的音頻參數(shù)的鍵。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回獲取的音頻參數(shù)的值。

示例:

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

getDevices

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

獲取音頻設(shè)備列表,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
deviceFlag[DeviceFlag]設(shè)備類型的flag。
callbackAsyncCallback<[AudioDeviceDescriptors]>回調(diào),返回設(shè)備列表。

示例:

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

getDevices

getDevices(deviceFlag: DeviceFlag): Promise

獲取音頻設(shè)備列表,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
deviceFlag[DeviceFlag]設(shè)備類型的flag。

返回值:

類型說(shuō)明
Promise<[AudioDeviceDescriptors]>Promise回調(diào)返回設(shè)備列表。

示例:

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

setDeviceActive

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

設(shè)置設(shè)備激活狀態(tài),使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
deviceType[ActiveDeviceType]活躍音頻設(shè)備類型。
activeboolean設(shè)備激活狀態(tài)。
callbackAsyncCallback回調(diào)返回設(shè)置成功或失敗。

示例:

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

setDeviceActive

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

設(shè)置設(shè)備激活狀態(tài),使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
deviceType[ActiveDeviceType]活躍音頻設(shè)備類型。
activeboolean設(shè)備激活狀態(tài)。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回設(shè)置成功或失敗。

示例:

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

isDeviceActive

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

獲取指定設(shè)備的激活狀態(tài),使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
deviceType[ActiveDeviceType]活躍音頻設(shè)備類型。
callbackAsyncCallback回調(diào)返回設(shè)備的激活狀態(tài)。

示例:

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

isDeviceActive

isDeviceActive(deviceType: ActiveDeviceType): Promise

獲取指定設(shè)備的激活狀態(tài),使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
deviceType[ActiveDeviceType]活躍音頻設(shè)備類型。

返回值:

TypeDescription
PromisePromise回調(diào)返回設(shè)備的激活狀態(tài)。

示例:

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

setMicrophoneMute

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

設(shè)置麥克風(fēng)靜音狀態(tài),使用callback方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.MICROPHONE

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
muteboolean待設(shè)置的靜音狀態(tài),true為靜音,false為非靜音。
callbackAsyncCallback回調(diào)返回設(shè)置成功或失敗。

示例:

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

setMicrophoneMute

setMicrophoneMute(mute: boolean): Promise

設(shè)置麥克風(fēng)靜音狀態(tài),使用Promise方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.MICROPHONE

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
muteboolean待設(shè)置的靜音狀態(tài),true為靜音,false為非靜音。

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回設(shè)置成功或失敗。

示例:

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

isMicrophoneMute

isMicrophoneMute(callback: AsyncCallback): void

獲取麥克風(fēng)靜音狀態(tài),使用callback方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.MICROPHONE

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),true為靜音,false為非靜音。

示例:

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

isMicrophoneMute

isMicrophoneMute(): Promise

獲取麥克風(fēng)靜音狀態(tài),使用Promise方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.MICROPHONE

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

返回值:

類型說(shuō)明
PromisePromise回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),true為靜音,false為非靜音。

示例:

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

on('volumeChange')8+

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

監(jiān)聽系統(tǒng)音量變化事件。

此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring事件回調(diào)類型,支持的事件為:'volumeChange'(系統(tǒng)音量變化事件,檢測(cè)到系統(tǒng)音量改變時(shí),觸發(fā)該事件)。
callbackCallback<[VolumeEvent]>回調(diào)方法。

示例:

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

on('ringerModeChange')8+

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

監(jiān)聽鈴聲模式變化事件。

此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring事件回調(diào)類型,支持的事件為:'ringerModeChange'(鈴聲模式變化事件,檢測(cè)到鈴聲模式改變時(shí),觸發(fā)該事件)。
callbackCallback<[AudioRingMode]>回調(diào)方法。

示例:

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

on('deviceChange')

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

設(shè)備更改。音頻設(shè)備連接狀態(tài)變化。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件的類型。支持事件:'deviceChange'
callbackCallback<[DeviceChangeAction]>獲取設(shè)備更新詳情。

示例:

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')

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

取消訂閱音頻設(shè)備連接變化事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件的類型。支持事件:'deviceChange'
callbackCallback<[DeviceChangeAction]>獲取設(shè)備更新詳情。

示例:

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

on('interrupt')

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

請(qǐng)求焦點(diǎn)并開始監(jiān)聽音頻打斷事件(當(dāng)應(yīng)用程序的音頻被另一個(gè)播放事件中斷,回調(diào)通知此應(yīng)用程序)

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring音頻打斷事件回調(diào)類型,支持的事件為:'interrupt'(多應(yīng)用之間第二個(gè)應(yīng)用會(huì)打斷第一個(gè)應(yīng)用,觸發(fā)該事件)。
interruptAudioInterrupt音頻打斷事件類型的參數(shù)。
callbackCallback<[InterruptAction]>音頻打斷事件回調(diào)方法。

示例:

var interAudioInterrupt = {
    streamUsage:2,
    contentType:0,
    pauseWhenDucked:true
};
audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) = > {
    if (InterruptAction.actionType === 0) {
        console.log("An event to gain the audio focus starts.");
        console.log("Focus gain event:" + JSON.stringify(InterruptAction));
    }
    if (InterruptAction.actionType === 1) {
        console.log("An audio interruption event starts.");
        console.log("Audio interruption event:" + JSON.stringify(InterruptAction));
    }
});

off('interrupt')

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

取消監(jiān)聽音頻打斷事件(刪除監(jiān)聽事件,取消打斷)

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring音頻打斷事件回調(diào)類型,支持的事件為:'interrupt'(多應(yīng)用之間第二個(gè)應(yīng)用會(huì)打斷第一個(gè)應(yīng)用,觸發(fā)該事件)。
interruptAudioInterrupt音頻打斷事件類型的參數(shù)。
callbackCallback<[InterruptAction]>音頻打斷事件回調(diào)方法。

示例:

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

setAudioScene8+

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

設(shè)置音頻場(chǎng)景模式,使用callback方式異步返回結(jié)果。

此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名類型必填說(shuō)明
scene[AudioScene]音頻場(chǎng)景模式。
callbackAsyncCallback用于返回結(jié)果的回調(diào)。

示例:

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

setAudioScene8+

setAudioScene(scene: AudioScene): Promise

設(shè)置音頻場(chǎng)景模式,使用Promise方式返回異步結(jié)果。

此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名類型必填說(shuō)明
scene[AudioScene]音頻場(chǎng)景模式。

返回值:

類型說(shuō)明
Promise用于返回結(jié)果的回調(diào)。

示例:

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

getAudioScene8+

getAudioScene(callback: AsyncCallback): void

獲取音頻場(chǎng)景模式,使用callback方式返回異步結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[AudioScene]>用于返回音頻場(chǎng)景模式的回調(diào)。

示例:

audioManager.getAudioScene((err, value) = > {
   if (err) {
       console.error('Failed to obtain the audio scene mode.? ${err.message}');
       return;
   }
   console.log('Callback invoked to indicate that the audio scene mode is obtained.' + value);
});

getAudioScene8+

getAudioScene(): Promise

獲取音頻場(chǎng)景模式,使用Promise方式返回異步結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

返回值:

類型說(shuō)明
Promise<[AudioScene]>用于返回音頻場(chǎng)景模式的回調(diào)。

示例:

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

AudioDeviceDescriptor

描述音頻設(shè)備。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device

名稱類型可讀可寫說(shuō)明
deviceRole[DeviceRole]設(shè)備角色。
deviceType[DeviceType]設(shè)備類型。

AudioDeviceDescriptors

設(shè)備屬性數(shù)組類型,為[AudioDeviceDescriptor]的數(shù)組,只讀。

示例:

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

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

}

var deviceRoleValue = null;
var 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.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  FAIL');
    }
});

AudioRenderer8+

提供音頻渲染的相關(guān)接口。在調(diào)用AudioRenderer的接口前,需要先通過(guò)[createAudioRenderer]創(chuàng)建實(shí)例。

屬性

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱類型可讀可寫說(shuō)明
state8+[AudioState]音頻渲染器的狀態(tài)。

示例:

var state = audioRenderer.state;

getRendererInfo8+

getRendererInfo(callback: AsyncCallback): void

獲取當(dāng)前被創(chuàng)建的音頻渲染器的信息,使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[AudioRendererInfo]>返回音頻渲染器的信息。

示例:

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

getRendererInfo8+

getRendererInfo(): Promise

獲取當(dāng)前被創(chuàng)建的音頻渲染器的信息,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
Promise<[AudioRendererInfo]>Promise用于返回音頻渲染器信息。

示例:

var resultFlag = true;
audioRenderer.getRendererInfo().then((rendererInfo) = > {
    console.log('Renderer GetRendererInfo:');
    console.log('Renderer content:' + rendererInfo.content);
    console.log('Renderer usage:' + rendererInfo.usage);
    console.log('Renderer flags:' + rendererInfo.rendererFlags);
}).catch((err) = > {
    console.log('AudioFrameworkRenderLog: RendererInfo :ERROR: '+err.message);
    resultFlag = false;
});

getStreamInfo8+

getStreamInfo(callback: AsyncCallback): void

獲取音頻流信息,使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[AudioStreamInfo]>回調(diào)返回音頻流信息。

示例:

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

getStreamInfo8+

getStreamInfo(): Promise

獲取音頻流信息,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
Promise<[AudioStreamInfo]>Promise返回音頻流信息.

示例:

audioRenderer.getStreamInfo().then((streamInfo) = > {
    console.log('Renderer GetStreamInfo:');
    console.log('Renderer sampling rate:' + streamInfo.samplingRate);
    console.log('Renderer channel:' + streamInfo.channels);
    console.log('Renderer format:' + streamInfo.sampleFormat);
    console.log('Renderer encoding type:' + streamInfo.encodingType);
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

start8+

start(callback: AsyncCallback): void

啟動(dòng)音頻渲染器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback回調(diào)函數(shù)。

示例:

audioRenderer.start((err) = > {
    if (err) {
        console.error('Renderer start failed.');
    } else {
        console.info('Renderer start success.');
    }
});

start8+

start(): Promise

啟動(dòng)音頻渲染器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
PromisePromise方式異步返回結(jié)果。

示例:

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

pause8+

pause(callback: AsyncCallback): void

暫停渲染。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback返回回調(diào)的結(jié)果。

示例:

audioRenderer.pause((err) = > {
    if (err) {
        console.error('Renderer pause failed');
    } else {
        console.log('Renderer paused.');
    }
});

pause8+

pause(): Promise

暫停渲染。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
PromisePromise方式異步返回結(jié)果。

示例:

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

drain8+

drain(callback: AsyncCallback): void

檢查緩沖區(qū)是否已被耗盡。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback返回回調(diào)的結(jié)果。

示例:

audioRenderer.drain((err) = > {
    if (err) {
        console.error('Renderer drain failed');
    } else {
        console.log('Renderer drained.');
    }
});

drain8+

drain(): Promise

檢查緩沖區(qū)是否已被耗盡。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
PromisePromise方式異步返回結(jié)果。

示例:

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

stop8+

stop(callback: AsyncCallback): void

停止渲染。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback返回回調(diào)的結(jié)果。

示例:

audioRenderer.stop((err) = > {
    if (err) {
        console.error('Renderer stop failed');
    } else {
        console.log('Renderer stopped.');
    }
});

stop8+

stop(): Promise

停止渲染。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
PromisePromise方式異步返回結(jié)果。

示例:

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

release8+

release(callback: AsyncCallback): void

釋放音頻渲染器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback返回回調(diào)的結(jié)果。

示例:

audioRenderer.release((err) = > {
    if (err) {
        console.error('Renderer release failed');
    } else {
        console.log('Renderer released.');
    }
});

release8+

release(): Promise

釋放渲染器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
PromisePromise方式異步返回結(jié)果。

示例:

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

write8+

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

寫入緩沖區(qū)。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
bufferArrayBuffer要寫入緩沖區(qū)的數(shù)據(jù)。
callbackAsyncCallback回調(diào)如果成功,返回寫入的字節(jié)數(shù),否則返回errorcode。

示例:

import audio from '@ohos.multimedia.audio';
import fileio from '@ohos.fileio';
import featureAbility from '@ohos.ability.featureAbility'

var audioStreamInfo = {
    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
    channels: audio.AudioChannel.CHANNEL_2,
    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION
    rendererFlags: 1
}

var audioRendererOptions = {
    streamInfo: audioStreamInfo,
    rendererInfo: audioRendererInfo
}
var audioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data)= > {
    audioRenderer = data;
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    }).catch((err) = > {
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    });
var bufferSize;
audioRenderer.getBufferSize().then((data)= > {
    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    bufferSize = data;
    }).catch((err) = > {
    console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
    });
console.info('Buffer size:'+bufferSize);
var context = featureAbility.getContext();
var path = await context.getCacheDir();
var filePath = path+"/StarWars10s-2C-48000-4SW.wav"
let ss = fileio.createStreamSync(filePath, 'r');
let buf = new ArrayBuffer(bufferSize);
ss.readSync(buf);
audioRenderer.write(buf, (err, writtenbytes) = > {
    if (writtenbytes < 0) {
        console.error('write failed.');
    } else {
       console.log('Actual written bytes: ' + writtenbytes);
    }
});

write8+

write(buffer: ArrayBuffer): Promise

寫入緩沖區(qū)。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
PromisePromise返回結(jié)果,如果成功,返回寫入的字節(jié)數(shù),否則返回errorcode。

示例:

import audio from '@ohos.multimedia.audio';
import fileio from '@ohos.fileio';
import featureAbility from '@ohos.ability.featureAbility'

var audioStreamInfo = {
    samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
    channels:audio.AudioChannel.CHANNEL_2,
    sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
}

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    rendererFlags: 1
}

var audioRendererOptions = {
    streamInfo: audioStreamInfo,
    rendererInfo: audioRendererInfo
}
var audioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data) = > {
    audioRenderer = data;
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    }).catch((err) = > {
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    });
var bufferSize;
audioRenderer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    bufferSize = data;
    }).catch((err) = > {
    console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
    });
console.info('BufferSize: ' + bufferSize);
var context = featureAbility.getContext();
var path = await context.getCacheDir();
var filePath = 'data/StarWars10s-2C-48000-4SW.wav';
let ss = fileio.createStreamSync(filePath, 'r');
let buf = new ArrayBuffer(bufferSize);
ss.readSync(buf);
audioRenderer.write(buf).then((writtenbytes) = > {
    if (writtenbytes < 0) {
        console.error('write failed.');
    } else {
        console.log('Actual written bytes: ' + writtenbytes);
    }
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

getAudioTime8+

getAudioTime(callback: AsyncCallback): void

獲取時(shí)間戳(從 1970 年 1 月 1 日開始)。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback回調(diào)返回時(shí)間戳。

示例:

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

getAudioTime8+

getAudioTime(): Promise

獲取時(shí)間戳(從 1970 年 1 月 1 日開始)。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型描述
PromisePromise回調(diào)返回時(shí)間戳。

示例:

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

getBufferSize8+

getBufferSize(callback: AsyncCallback): void

獲取音頻渲染器的最小緩沖區(qū)大小。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback回調(diào)返回緩沖區(qū)大小。

示例:

var bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) = > {
    if (err) {
        console.error('getBufferSize error');
    }
});

getBufferSize8+

getBufferSize(): Promise

獲取音頻渲染器的最小緩沖區(qū)大小。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
Promisepromise回調(diào)返回緩沖區(qū)大小。

示例:

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

var audioStreamInfo = {
    samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
    channels:audio.AudioChannel.CHANNEL_2,
    sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
}

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    rendererFlags: 1
}

var audioRendererOptions = {
    streamInfo: audioStreamInfo,
    rendererInfo: audioRendererInfo
}
var audioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data) = > {
    audioRenderer = data;
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    }).catch((err) = > {
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    });
var bufferSize;
audioRenderer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    bufferSize=data;
}).catch((err) = > {
    console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
});

setRenderRate8+

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

設(shè)置音頻渲染速率。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
rate[AudioRendererRate]渲染的速率。
callbackAsyncCallback用于返回執(zhí)行結(jié)果的回調(diào)。

示例:

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

setRenderRate8+

setRenderRate(rate: AudioRendererRate): Promise

設(shè)置音頻渲染速率。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
rate[AudioRendererRate]渲染的速率。

返回值:

類型說(shuō)明
PromisePromise用于返回執(zhí)行結(jié)果。

示例:

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

getRenderRate8+

getRenderRate(callback: AsyncCallback): void

獲取當(dāng)前渲染速率。使用callback方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[AudioRendererRate]>回調(diào)返回渲染速率。

示例:

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

getRenderRate8+

getRenderRate(): Promise

獲取當(dāng)前渲染速率。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說(shuō)明
Promise<[AudioRendererRate]>Promise回調(diào)返回渲染速率。

示例:

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

on('interrupt')9+

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

監(jiān)聽音頻中斷事件。使用callback獲取中斷事件。

系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring事件回調(diào)類型,支持的事件為:'interrupt'(中斷事件被觸發(fā),音頻播放被中斷。)
callbackCallback<[InterruptEvent]>被監(jiān)聽的中斷事件的回調(diào)。

示例:

var isPlay;
var started;
audioRenderer.on('interrupt', async(interruptEvent) = > {
    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
        switch (interruptEvent.hintType) {
            case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
                console.log('Force paused. Stop writing');
                isPlay = false;
                break;
            case audio.InterruptHint.INTERRUPT_HINT_STOP:
                console.log('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.log('Resume force paused renderer or ignore');
                await audioRenderer.start().then(async function () {
                    console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
                    started = true;
                }).catch((err) = > {
                    console.info('AudioInterruptMusic: renderInstant start :ERROR : '+err.message);
                    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.log('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: (position: number) => {}): void

訂閱到達(dá)標(biāo)記的事件。 當(dāng)渲染的幀數(shù)達(dá)到 frame 參數(shù)的值時(shí),回調(diào)被調(diào)用。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring事件回調(diào)類型,支持的事件為:'markReach'。
framenumber觸發(fā)事件的幀數(shù)。 該值必須大于 0。
callback(position: number) => {}觸發(fā)事件時(shí)調(diào)用的回調(diào)。

示例:

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

off('markReach') 8+

off(type: 'markReach'): void

取消訂閱標(biāo)記事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring要取消訂閱事件的類型。支持的事件為:'markReach'。

示例:

audioRenderer.off('markReach');

on('periodReach') 8+

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

訂閱到達(dá)標(biāo)記的事件。 當(dāng)渲染的幀數(shù)達(dá)到 frame 參數(shù)的值時(shí),回調(diào)被循環(huán)調(diào)用。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring事件回調(diào)類型,支持的事件為:'periodReach'。
framenumber觸發(fā)事件的幀數(shù)。 該值必須大于 0。
callback(position: number) => {}觸發(fā)事件時(shí)調(diào)用的回調(diào)。

示例:

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

off('periodReach') 8+

off(type: 'periodReach'): void

取消訂閱標(biāo)記事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring要取消訂閱事件的類型。支持的事件為:'periodReach'。

示例:

audioRenderer.off('periodReach')

on('stateChange') 8+

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

訂閱監(jiān)聽狀態(tài)變化。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring事件回調(diào)類型,支持的事件為:'stateChange'。
callback[AudioState]返回監(jiān)聽的狀態(tài)。

示例:

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

AudioCapturer8+

提供音頻采集的相關(guān)接口。在調(diào)用AudioCapturer的接口前,需要先通過(guò)[createAudioCapturer]創(chuàng)建實(shí)例。

屬性

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

名稱類型可讀可寫說(shuō)明
state8+[AudioState]音頻采集器狀態(tài)。

示例:

var state = audioCapturer.state;

getCapturerInfo8+

getCapturerInfo(callback: AsyncCallback): void

獲取采集器信息。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback使用callback方式異步返回采集器信息。

示例:

audioCapturer.getCapturerInfo((err, capturerInfo) = > {
    if (err) {
        console.error('Failed to get capture info');
    } else {
        console.log('Capturer getCapturerInfo:');
        console.log('Capturer source:' + capturerInfo.source);
        console.log('Capturer flags:' + capturerInfo.capturerFlags);
    }
});

getCapturerInfo8+

getCapturerInfo(): Promise

獲取采集器信息。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說(shuō)明
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.log('AudioFrameworkRecLog: CapturerInfo :ERROR: '+err.message);
});

getStreamInfo8+

getStreamInfo(callback: AsyncCallback): void

獲取采集器流信息。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[AudioStreamInfo]>使用callback方式異步返回流信息。

示例:

audioCapturer.getStreamInfo((err, streamInfo) = > {
    if (err) {
        console.error('Failed to get stream info');
    } else {
        console.log('Capturer GetStreamInfo:');
        console.log('Capturer sampling rate:' + streamInfo.samplingRate);
        console.log('Capturer channel:' + streamInfo.channels);
        console.log('Capturer format:' + streamInfo.sampleFormat);
        console.log('Capturer encoding type:' + streamInfo.encodingType);
    }
});

getStreamInfo8+

getStreamInfo(): Promise

獲取采集器流信息。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說(shuō)明
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.log('getStreamInfo :ERROR: ' + err.message);
});

start8+

start(callback: AsyncCallback): void

啟動(dòng)音頻采集器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù)

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback使用callback方式異步返回結(jié)果。

示例:

audioCapturer.start((err) = > {
    if (err) {
        console.error('Capturer start failed.');
    } else {
        console.info('Capturer start success.');
    }
});

start8+

start(): Promise

啟動(dòng)音頻采集器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說(shuō)明
Promise使用Promise方式異步返回結(jié)果。

示例:

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

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

var audioCapturerInfo = {
    source: audio.SourceType.SOURCE_TYPE_MIC,
    capturerFlags = 1
}

var audioCapturer;
audio.createAudioCapturer(audioCapturerOptions).then((data) = > {
    audioCapturer = data;
    console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS');
    }).catch((err) = > {
    console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: '+err.message);
    });
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.message);
    stateFlag=false;
});

stop8+

stop(callback: AsyncCallback): void

停止采集。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback使用callback方式異步返回結(jié)果。

示例:

audioCapturer.stop((err) = > {
    if (err) {
        console.error('Capturer stop failed');
    } else {
        console.log('Capturer stopped.');
    }
});

stop8+

stop(): Promise

停止采集。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說(shuō)明
Promise使用Promise方式異步返回結(jié)果。

示例:

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.message);
});

release8+

release(callback: AsyncCallback): void

釋放采集器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallbackCallback used to return the result.

示例:

audioCapturer.release((err) = > {
    if (err) {
        console.error('capturer release failed');
    } else {
        console.log('capturer released.');
    }
});

release8+

release(): Promise

釋放采集器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說(shuō)明
Promise使用Promise方式異步返回結(jié)果。

示例:

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.message);
});

read8+

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

讀入緩沖區(qū)。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù)

參數(shù)名類型必填說(shuō)明
sizenumber讀入的字節(jié)數(shù)。
isBlockingReadboolean是否阻塞讀操作。
callbackAsyncCallback使用callback方式異步返回緩沖區(qū)。

示例:

var bufferSize;
audioCapturer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data);
    bufferSize = data;
    }).catch((err) = > {
    console.info('AudioFrameworkRecLog: getBufferSize: EROOR: '+err.message);
    });
audioCapturer.read(bufferSize, true, async(err, buffer) = > {
    if (!err) {
        console.log("Success in reading the buffer data");
    }
});

read8+

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

讀入緩沖區(qū)。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
sizenumber讀入的字節(jié)數(shù)。
isBlockingReadboolean是否阻塞讀操作。

返回值:

類型說(shuō)明
Promise如果操作成功,返回讀取的緩沖區(qū)數(shù)據(jù);否則返回錯(cuò)誤代碼。

示例:

var bufferSize;
audioCapturer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data);
    bufferSize = data;
    }).catch((err) = > {
    console.info('AudioFrameworkRecLog: getBufferSize: ERROR '+err.message);
    });
console.info('Buffer size: ' + bufferSize);
audioCapturer.read(bufferSize, true).then((buffer) = > {
    console.info('buffer read successfully');
}).catch((err) = > {
    console.info('ERROR : '+err.message);
});

getAudioTime8+

getAudioTime(callback: AsyncCallback): void

獲取時(shí)間戳(從1970年1月1日開始),單位為納秒。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback使用callback方式異步返回結(jié)果。

示例:

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

getAudioTime8+

getAudioTime(): Promise

獲取時(shí)間戳(從1970年1月1日開始),單位為納秒。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說(shuō)明
Promise使用Promise方式異步返回結(jié)果。

示例:

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

getBufferSize8+

getBufferSize(callback: AsyncCallback): void

獲取采集器合理的最小緩沖區(qū)大小。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback使用callback方式異步返回緩沖區(qū)大小。

示例:

audioCapturer.getBufferSize((err, bufferSize) = > {
    if (!err) {
        console.log('BufferSize : ' + bufferSize);
        audioCapturer.read(bufferSize, true).then((buffer) = > {
            console.info('Buffer read is ' + buffer );
        }).catch((err) = > {
            console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : '+err.message);
        });
    }
});

getBufferSize8+

getBufferSize(): Promise

獲取采集器合理的最小緩沖區(qū)大小。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說(shuō)明
Promise使用Promise方式異步返回緩沖區(qū)大小。

示例:

var bufferSize;
audioCapturer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRecLog: getBufferSize :SUCCESS '+ data);
    bufferSize = data;
}).catch((err) = > {
    console.info('AudioFrameworkRecLog: getBufferSize :ERROR : '+ err.message);
});

on('markReach')8+

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

訂閱標(biāo)記到達(dá)的事件。 當(dāng)采集的幀數(shù)達(dá)到 frame 參數(shù)的值時(shí),回調(diào)被觸發(fā)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring事件回調(diào)類型,支持的事件為:'markReach'。
framenumber觸發(fā)事件的幀數(shù)。 該值必須大于0。
callbackposition: number) => {}使用callback方式異步返回被觸發(fā)事件的回調(diào)。

示例:

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

off('markReach')8+

off(type: 'markReach'): void

取消訂閱標(biāo)記到達(dá)的事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring取消事件回調(diào)類型,支持的事件為:'markReach'。

示例:

audioCapturer.off('markReach');

on('periodReach')8+

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

訂閱到達(dá)標(biāo)記的事件。 當(dāng)采集的幀數(shù)達(dá)到 frame 參數(shù)的值時(shí),回調(diào)被循環(huán)調(diào)用。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring事件回調(diào)類型,支持的事件為:'periodReach'。
framenumber觸發(fā)事件的幀數(shù)。 該值必須大于0。
callback(position: number) => {}使用callback方式異步返回被觸發(fā)事件的回調(diào)

示例:

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

off('periodReach')8+

off(type: 'periodReach'): void

取消訂閱標(biāo)記到達(dá)的事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明
typestringYes取消事件回調(diào)類型,支持的事件為:'periodReach'。

示例:

audioCapturer.off('periodReach')

on('stateChange') 8+

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

訂閱監(jiān)聽狀態(tài)變化。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名類型必填說(shuō)明HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
typestring事件回調(diào)類型,支持的事件為:'stateChange'。
callback[AudioState]返回監(jiān)聽的狀態(tài)。

搜狗高速瀏覽器截圖20240326151344.png
示例:

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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8257

    瀏覽量

    149960
  • 開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    357

    瀏覽量

    40737
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42489
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙開發(fā)接口媒體:【@ohos.multimedia.camera (相機(jī)管理)】

    本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
    的頭像 發(fā)表于 05-31 09:42 ?1274次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.camera (相機(jī)<b class='flag-5'>管理</b>)】

    鴻蒙開發(fā)接口媒體:【@ohos.multimedia.image (圖片處理)】

    本模塊首批接口從API version 6開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
    的頭像 發(fā)表于 05-31 16:58 ?1248次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.image (圖片處理)】

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-延遲任務(wù)說(shuō)明(一)

    ) @ohos.backgroundTaskManager (后臺(tái)任務(wù)管理) @ohos.multimedia.audio (音頻管理) @
    發(fā)表于 01-16 14:57

    鴻蒙媒體開發(fā)【簡(jiǎn)述】

    錄制)、圖片等。 如下圖所示,媒體系統(tǒng)面向應(yīng)用開發(fā)提供音視頻應(yīng)用、圖庫(kù)應(yīng)用的編程框架接口;面向設(shè)備開發(fā)提供對(duì)接不同硬件芯片適配加速功能;中間以服務(wù)形態(tài)提供
    發(fā)表于 02-28 17:53

    HarmonyOS API Version 7版本特性說(shuō)明

    ,主要包含音視頻、媒體庫(kù)、圖片編解碼等媒體能力,支撐了X1圖庫(kù)的商用訴求,同步助力HarmonyOS北向生態(tài)拓展。圖5 多媒體子系統(tǒng)新增接口@oho
    發(fā)表于 11-30 15:19

    HarmonyOS API Version 7版本特性說(shuō)明

    ,主要包含音視頻、媒體庫(kù)、圖片編解碼等媒體能力,支撐了X1圖庫(kù)的商用訴求,同步助力HarmonyOS北向生態(tài)拓展。圖5 多媒體子系統(tǒng)新增接口@oho
    發(fā)表于 12-01 10:35

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTSAPI系統(tǒng)能力SystemCapability列表

    SystemCapability.Multimedia.Audio.Capturer:音頻輸入能力 SystemCapability.Multimedia.Audio.Device:音頻設(shè)備
    發(fā)表于 08-11 10:08

    HarmonyOS音頻開發(fā)指導(dǎo):使用AudioRenderer開發(fā)音頻播放功能

    音頻文件的示例代碼。 import audio from \'@ohos.multimedia.audio\'; import fs from \'@ohos.file.fs\';
    發(fā)表于 10-23 14:21

    HarmonyOS多音頻播放并發(fā)政策及音頻管理解析

    實(shí)例 在使用AudioRoutingManager管理音頻設(shè)備前,需要先導(dǎo)入模塊并創(chuàng)建實(shí)例。 import audio from \'@ohos.multimedia.audio\';
    發(fā)表于 10-25 16:35

    基于開源項(xiàng)目Piasy/RxAndroid音頻進(jìn)行的ohos移植和開發(fā)

    本項(xiàng)目是基于開源項(xiàng)目Piasy/RxAndroidAudio進(jìn)行ohos移植和開發(fā)的。 所屬系列:鴻蒙的第三方組件適配移植 功能:(Functions:) 實(shí)現(xiàn)音頻文件錄制和播放 (1
    發(fā)表于 04-02 15:52 ?10次下載

    OpenHarmony 3.2 Beta Audio音頻渲染

    一、簡(jiǎn)介 Audio是多媒體子系統(tǒng)中的一個(gè)重要模塊,其涉及的內(nèi)容比較多,有音頻的渲染、音頻的采集、音頻的策略
    的頭像 發(fā)表于 03-11 14:15 ?563次閱讀

    OpenHarmony 3.2 Beta Audio——音頻渲染

    點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們 開源項(xiàng)目 OpenHarmony 是每個(gè)人的 OpenHarmony 巴延興 深圳開鴻數(shù)字產(chǎn)業(yè)發(fā)展有限公司 資深OS框架開發(fā)工程師 一、簡(jiǎn)介 Audio是多媒體子系統(tǒng)中的一個(gè)
    的頭像 發(fā)表于 03-11 16:40 ?602次閱讀

    鴻蒙開發(fā)實(shí)戰(zhàn):【文件管理

    文件管理相關(guān)的功能,使用[@ohos.multimedia.medialibrary]、[@ohos.filemanagement.userFileManager]?、[@ohos
    的頭像 發(fā)表于 03-20 21:57 ?507次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>實(shí)戰(zhàn):【文件<b class='flag-5'>管理</b>】

    鴻蒙開發(fā)接口媒體:【@ohos.multimedia.media (媒體服務(wù))】

    媒體子系統(tǒng)為開發(fā)者提供一套簡(jiǎn)單且易于理解的接口,使得開發(fā)者能夠方便接入系統(tǒng)并使用系統(tǒng)的媒體資源。
    的頭像 發(fā)表于 06-06 11:03 ?548次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.media (<b class='flag-5'>媒體</b>服務(wù))】

    鴻蒙開發(fā)接口媒體:【@ohos.multimedia.medialibrary (媒體庫(kù)管理)】

    獲取媒體庫(kù)的實(shí)例,用于訪問和修改用戶等個(gè)人媒體數(shù)據(jù)信息(如音頻、視頻、圖片、文檔等)。
    的頭像 發(fā)表于 06-03 11:52 ?931次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.medialibrary (<b class='flag-5'>媒體</b>庫(kù)<b class='flag-5'>管理</b>)】