未验证 提交 46691631 编写于 作者: O openharmony_ci 提交者: Gitee

!2184 js-apis-audio.md

Merge pull request !2184 from li-yifan2/master
......@@ -6,7 +6,8 @@
该模块提供以下音频相关的常用功能:
- [AudioManager](#audiomanager):音频管理。
- [AudioRenderer](#audiorenderer8):音频播放,用于播放PCM(Pulse Code Modulation)音频数据。
- [AudioRenderer](#audiorenderer8):音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。
- [AudioCapturer](#audiocapturer8):音频采集,用于录制PCM(Pulse Code Modulation)音频数据。
## 导入模块
......@@ -37,21 +38,73 @@ var audioManager = audio.getAudioManager();
createAudioRenderer(options: AudioRendererOptions): AudioRenderer
获取音频播放器。
获取音频渲染器。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------------------- | ---- | ----------- |
| options | [AudioRendererOptions](#audiorendereroptions8) | 是 | 配置播放器. |
| ------- | ---------------------------------------------- | ---- | ------------ |
| options | [AudioRendererOptions](#audiorendereroptions8) | 是 | 配置渲染器。 |
**返回值**
| 类型 | 说明 |
| -------------------------------- | ---------------- |
| [AudioRenderer](#audiorenderer8) | 音频播放器对象。 |
| [AudioRenderer](#audiorenderer8) | 音频渲染器对象。 |
**示例:**
```
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(`AudioRender Created : Error: ${err.message}`);
}
else {
console.info('AudioRender Created : Success : SUCCESS');
audioRenderer = data;
}
});
```
## audio.createAudioRenderer<sup>8+</sup>
createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer\>
获取音频渲染器。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------ | :--------------------------------------------- | :--- | :----------- |
| options | [AudioRendererOptions](#audiorendereroptions8) | 是 | 配置渲染器。 |
**返回值:**
| 类型 | 说明 |
| ----------------------------------------- | ---------------- |
| Promise<[AudioRenderer](#audiorenderer8)> | 音频播放器对象。 |
**示例:**
......@@ -77,6 +130,95 @@ var audioRendererOptions = {
let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
```
## audio.createAudioCapturer<sup>8+</sup>
createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer\>): void
获取音频采集器。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :--------------------------------------------- | :--- | :--------------- |
| options | [AudioCapturerOptions](#AudioCapturerOptions) | 是 | 配置音频采集器。 |
| callback | AsyncCallback<[AudioCapturer](#AudioCapturer)> | 是 | 音频采集器对象。 |
**示例:**
```
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');
audioCapturer = data;
}
});
```
## audio.createAudioCapturer<sup>8+</sup>
createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer\>
获取音频采集器。使用promise 方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------ | :------------------- | :--- | :--------------- |
| options | AudioCapturerOptions | 是 | 配置音频采集器。 |
**返回值:**
| 类型 | 说明 |
| ----------------------------------------- | -------------- |
| Promise<[AudioCapturer](#AudioCapturer8)> | 音频采集器对象 |
**示例:**
```
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
}
let audioCapturer = await audio.createAudioCapturer(audioCapturerOptions);
```
## AudioVolumeType
枚举,音频流类型。
......@@ -123,12 +265,12 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device
| 名称 | 默认值 | 描述 |
| -------------- | ------ | --------------------------------------------------------- |
| --------------- | ------ | --------------------------------------------------------- |
| INVALID | 0 | 无效设备。 |
| EARPIECE | 1 | 听筒。 |
| SPEAKER | 2 | 扬声器。 |
| WIRED_HEADSET | 3 | 有线耳机,带麦克风。 |
| WIRED_HEADPHONE| 4 | 有线耳机,无麦克风。 |
| WIRED_HEADPHONE | 4 | 有线耳机,无麦克风。 |
| BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |
| BLUETOOTH_A2DP | 8 | 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。 |
| MIC | 15 | 麦克风。 |
......@@ -213,22 +355,22 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| ENCODING_TYPE_INVALID | -1 | 无效。 |
| ENCODING_TYPE_RAW | 0 | PCM编码。 |
## ContentType<sup>8+</sup>
## ContentType
枚举,音频内容类型。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
| 名称 | 默认值 | 描述 |
| ------------------------- | ------ | ---------- |
| ---------------------------------- | ------ | ---------- |
| CONTENT_TYPE_UNKNOWN | 0 | 未知类型。 |
| CONTENT_TYPE_SPEECH | 1 | 语音。 |
| CONTENT_TYPE_MUSIC | 2 | 音乐。 |
| CONTENT_TYPE_MOVIE | 3 | 电影。 |
| CONTENT_TYPE_SONIFICATION | 4 | 加密类型。 |
| CONTENT_TYPE_RINGTONE | 5 | 铃声。 |
| CONTENT_TYPE_RINGTONE<sup>8+</sup> | 5 | 铃声。 |
## StreamUsage<sup>8+</sup>
## StreamUsage
枚举,音频流使用类型。
......@@ -239,7 +381,7 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| STREAM_USAGE_UNKNOWN | 0 | 未知类型。 |
| STREAM_USAGE_MEDIA | 1 | 音频。 |
| STREAM_USAGE_VOICE_COMMUNICATION | 2 | 语音通信。 |
| STREAM_USAGE_NOTIFICATION_RINGTONE | 3 | 通知铃声。 |
| STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 |
## AudioState<sup>8+</sup>
......@@ -259,7 +401,7 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
## AudioRendererRate<sup>8+</sup>
枚举,播放速度。
枚举,音频渲染速度。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
......@@ -269,7 +411,7 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| RENDER_RATE_DOUBLE | 1 | 2倍速。 |
| RENDER_RATE_HALF | 2 | 0.5倍数。 |
## InterruptType<sup>8+</sup>
## InterruptType
枚举,中断类型。
......@@ -280,7 +422,7 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| INTERRUPT_TYPE_BEGIN | 1 | 音频播放中断事件开始。 |
| INTERRUPT_TYPE_END | 2 | 音频播放中断事件结束。 |
## InterruptForceType<sup>8+</sup>
## InterruptForceType<sup>9+</sup>
枚举,强制打断类型。
......@@ -291,20 +433,20 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| INTERRUPT_FORCE | 0 | 由系统进行操作,强制打断音频播放。 |
| INTERRUPT_SHARE | 1 | 由应用进行操作,可以选择打断或忽略。 |
## InterruptHint<sup>8+</sup>
## InterruptHint
枚举,中断提示。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
| 名称 | 默认值 | 描述 |
| --------------------- | ------ | -------------------------------------------- |
| INTERRUPT_HINT_NONE | 0 | 无提示。 |
| ---------------------------------- | ------ | -------------------------------------------- |
| INTERRUPT_HINT_NONE<sup>8+</sup> | 0 | 无提示。 |
| INTERRUPT_HINT_RESUME | 1 | 提示音频恢复。 |
| INTERRUPT_HINT_PAUSE | 2 | 提示音频暂停。 |
| INTERRUPT_HINT_STOP | 3 | 提示音频停止。 |
| INTERRUPT_HINT_DUCK | 4 | 提示音频躲避。(躲避:音量减弱,而不会停止) |
| INTERRUPT_HINT_UNDUCK | 5 | 提示音量恢复。 |
| INTERRUPT_HINT_UNDUCK<sup>8+</sup> | 5 | 提示音量恢复。 |
## InterruptActionType
......@@ -334,28 +476,28 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
## AudioRendererInfo<sup>8+</sup>
音频播放器信息。
音频渲染器信息。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
| 名称 | 类型 | 必填 | 说明 |
| ------------- | ---------------------------- | ---- | ---------------- |
| contentType | [ContentType](#contenttype8) | 是 | 媒体类型。 |
| usage | [StreamUsage](#streamusage8) | 是 | 音频流使用类型。 |
| rendererFlags | number | 是 | 音频播放器标志。 |
| ------------- | --------------------------- | ---- | ---------------- |
| contentType | [ContentType](#contenttype) | 是 | 媒体类型。 |
| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 |
| rendererFlags | number | 是 | 音频渲染器标志。 |
## AudioRendererOptions<sup>8+</sup>
音频播放器选项信息。
音频渲染器选项信息。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
| 名称 | 类型 | 必填 | 说明 |
| ------------ | ---------------------------------------- | ---- | ---------------- |
| streamInfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 表示音频流信息。 |
| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示播放器信息。 |
| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 |
## InterruptEvent<sup>8+</sup>
## InterruptEvent<sup>9+</sup>
播放中断时,应用接收的中断事件。
......@@ -363,9 +505,9 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| 名称 | 类型 | 必填 | 说明 |
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
| eventType | [InterruptType](#interrupttype8) | 是 | 中断事件类型,开始或是结束。 |
| forceType | [InterruptForceType](#interruptforcetype8) | 是 | 操作是由系统执行或是由应用程序执行。 |
| hintType | [InterruptHint](#interrupthint8) | 是 | 中断提示。 |
| eventType | [InterruptType](#interrupttype) | 是 | 中断事件类型,开始或是结束。 |
| forceType | [InterruptForceType](#interruptforcetype9) | 是 | 操作是由系统执行或是由应用程序执行。 |
| hintType | [InterruptHint](#interrupthint) | 是 | 中断提示。 |
## AudioInterrupt
......@@ -377,8 +519,8 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| 名称 | 类型 | 必填 | 说明 |
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
| streamUsage | [StreamUsage](#streamusage8) | 是 | 音频流使用类型。 |
| contentType | [ContentType](#contenttype8) | 是 | 音频打断媒体类型。 |
| streamUsage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 |
| contentType | [ContentType](#contenttype) | 是 | 音频打断媒体类型。 |
| pauseWhenDucked | boolean | 是 | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 |
## InterruptAction
......@@ -392,14 +534,16 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| 名称 | 类型 | 必填 | 说明 |
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
| actionType | [InterruptActionType](#interruptactiontype) | 是 | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 |
| type | [InterruptType](#interrupttype8) | 否 | 打断事件类型。 |
| hint | [InterruptHint](interrupthint8) | 否 | 打断事件提示。 |
| type | [InterruptType](#interrupttype) | 否 | 打断事件类型。 |
| hint | [InterruptHint](interrupthint) | 否 | 打断事件提示。 |
| activated | boolean | 否 | 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。 |
## VolumeEvent<sup>8+</sup>
音量改变时,应用接收的事件。
此接口为系统接口,三方应用不支持。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Volume
| 名称 | 类型 | 必填 | 说明 |
......@@ -408,6 +552,65 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
| updateUi | boolean | 是 | 在UI中显示音量变化。 |
## DeviceChangeAction
描述设备连接状态变化和设备信息。
**系统能力:**SystemCapability.Multimedia.Audio.Device
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| :---------------- | :------------------------------------------------ | :--- | :----------------- |
| type | [DeviceChangeType](#DeviceChangeType) | 是 | 设备连接状态变化。 |
| deviceDescriptors | [AudioDeviceDescriptors](#AudioDeviceDescriptors) | 是 | 设备信息。 |
## DeviceChangeType
枚举,设备连接状态变化。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device
| 名称 | 默认值 | 描述 |
| :--------- | :----- | :------------- |
| CONNECT | 0 | 设备连接。 |
| DISCONNECT | 1 | 断开设备连接。 |
## AudioCapturerInfo<sup>8+</sup><a name="audiocapturerinfo"></a>
描述音频采集器信息。
**系统能力:** SystemCapability.Multimedia.Audio.Core
| 名称 | 类型 | 必填 | 说明 |
| :------------ | :------------------------ | :--- | :--------------- |
| source | [SourceType](#sourcetype) | 是 | 音源类型。 |
| capturerFlags | number | 是 | 音频采集器标志。 |
## SourceType<sup>8+</sup><a name="sourcetype"></a>
枚举,音源类型。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
| 名称 | 默认值 | 描述 |
| :------------------ | :----- | :------------- |
| SOURCE_TYPE_INVALID | -1 | 无效的音频源。 |
| SOURCE_TYPE_MIC | 0 | Mic音频源。 |
## AudioScene<sup>8+</sup><a name="audioscene"></a>
枚举,音频场景。
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Communication
| 名称 | 默认值 | 描述 |
| :------------------------------------------------- | :----- | :------------- |
| AUDIO_SCENE_DEFAULT | 0 | 默认音频场景。 |
| AUDIO_SCENE_RINGING(系统接口,三方应用不支持) | 1 | 响铃模式。 |
| AUDIO_SCENE_PHONE_CALL(系统接口,三方应用不支持) | 2 | 电话模式。 |
| AUDIO_SCENE_VOICE_CHAT | 3 | 语音聊天模式。 |
## AudioManager
管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过[getAudioManager](#audiogetaudiomanager)创建实例。
......@@ -1325,12 +1528,14 @@ audioManager.isMicrophoneMute().then((value) => {
})
```
### on('volumeChange')
### on('volumeChange')<sup>8+</sup>
on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
监听系统音量变化事件。
此接口为系统接口,三方应用不支持。
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
......@@ -1350,12 +1555,14 @@ audioManager.on('volumeChange', (volumeEvent) => {
})
```
### on('ringerModeChange')
### on('ringerModeChange')<sup>8+</sup>
on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
监听铃声模式变化事件。
此接口为系统接口,三方应用不支持。
**系统能力:** SystemCapability.Multimedia.Audio.Communication
**参数:**
......@@ -1365,6 +1572,57 @@ on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
| type | string | 是 | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
| callback | Callback<[AudioRingMode](#audioringmode)> | 是 | 回调方法。 |
### on('deviceChange')
on(type: 'deviceChange', callback: Callback<DeviceChangeAction\>): void
设备更改。音频设备连接状态变化。
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' |
| callback | Callback<[DeviceChangeAction](#DeviceChangeAction)\> | 是 | 获取设备更新详情。 |
**示例:**
```
audioManager.on('deviceChange', (deviceChanged) => {
console.info("device change type : " + deviceChanged.type);
console.info("device descriptor size : " + deviceChanged.deviceDescriptors.length);
console.info("device change descriptor : " + deviceChanged.deviceDescriptors[0].deviceRole);
console.info("device change descriptor : " + deviceChanged.deviceDescriptors[0].deviceType);
});
```
### off('deviceChange')
off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void
取消订阅音频设备连接变化事件。
本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' |
| callback | Callback<[DeviceChangeAction](#DeviceChangeAction)> | 否 | 获取设备更新详情。 |
**示例:**
```
audioManager.off('deviceChange', (deviceChanged) => {
console.log("Should be no callback.");
});
```
### on('interrupt')
on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\<InterruptAction>): void
......@@ -1437,6 +1695,118 @@ this.audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
});
```
### setAudioScene<sup>8+</sup>
setAudioScene\(scene: AudioScene, callback: AsyncCallback<void\>\): void
设置音频场景模式,使用callback方式异步返回结果。
此接口为系统接口,三方应用不支持。
**系统能力:** SystemCapability.Multimedia.Audio.Communication
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :----------------------------------- | :--- | :------------------- |
| scene | <a href="#audioscene">AudioScene</a> | 是 | 音频场景模式。 |
| callback | AsyncCallback<void\> | 是 | 用于返回结果的回调。 |
**示例:**
```
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.');
});
```
### setAudioScene<sup>8+</sup>
setAudioScene\(scene: AudioScene\): Promise<void\>
设置音频场景模式,使用Promise方式返回异步结果。
此接口为系统接口,三方应用不支持。
**系统能力:**: SystemCapability.Multimedia.Audio.Communication
**Parameters**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----------------------------------- | :--- | :------------- |
| scene | <a href="#audioscene">AudioScene</a> | 是 | 音频场景模式。 |
**返回值:**
| 类型 | 说明 |
| :------------- | :------------------- |
| Promise<void\> | 用于返回结果的回调。 |
**示例:**
```
audioManager.setAudioScene(audio.AudioSceneMode.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');
});
```
### getAudioScene<sup>8+</sup>
getAudioScene\(callback: AsyncCallback<AudioScene\>\): void
获取音频场景模式,使用callback方式返回异步结果。
**系统能力:**SystemCapability.Multimedia.Audio.Communication
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :-------------------------------------------------- | :--- | :--------------------------- |
| callback | AsyncCallback<<a href="#audioscene">AudioScene</a>> | 是 | 用于返回音频场景模式的回调。 |
**示例:**
```
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);
});
```
### getAudioScene<sup>8+</sup>
getAudioScene\(\): Promise<AudioScene\>
获取音频场景模式,使用Promise方式返回异步结果。
**系统能力:** SystemCapability.Multimedia.Audio.Communication
**返回值:**
| 类型 | 说明 |
| :-------------------------------------------- | :--------------------------- |
| Promise<<a href="#audioscene">AudioScene</a>> | 用于返回音频场景模式的回调。 |
**示例:**
```
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
描述音频设备。
......@@ -1486,13 +1856,21 @@ promise.then(async function (audioDeviceDescriptors) {
## AudioRenderer<sup>8+</sup>
提供音频播放的相关接口。在调用AudioRenderer的接口前,需要先通过[createAudioRenderer](#audiocreateaudiorenderer8)创建实例。
提供音频渲染的相关接口。在调用AudioRenderer的接口前,需要先通过[createAudioRenderer](#audiocreateaudiorenderer8)创建实例。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
### state<sup>8+</sup>
只读 state: AudioState
### 属性
定义当前渲染器的状态。
**参数:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| 名称 | 参数型 | 可读 | 可写 | 说明 |
| ----- | -------------------------- | ---- | ---- | ------------------ |
| state | [AudioState](#audiostate8) | 是 | 否 | 当前播放器的状态。 |
| state | [AudioState](#audiostate8) | 是 | 否 | 音频渲染器的状态。 |
**示例:**
......@@ -1504,15 +1882,15 @@ var state = audioRenderer.state;
getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void
获取当前被创建的音频播放器的信息,使用callback方式异步返回结果。
获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------------------------------------------- | :--- | :------------------------- |
| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | 是 | 回调返回音频播放器的信息。 |
| :------- | :------------------------------------------------------- | :--- | :--------------------- |
| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | 是 | 返回音频渲染器的信息。 |
**示例:**
......@@ -1529,7 +1907,7 @@ audioRenderer.getRendererInfo((err, rendererInfo)=>{
getRendererInfo(): Promise<AudioRendererInfo\>
获取当前被创建的音频播放器的信息,使用Promise方式异步返回结果。
获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1537,7 +1915,7 @@ getRendererInfo(): Promise<AudioRendererInfo\>
| 类型 | 说明 |
| -------------------------------------------------- | ------------------------------- |
| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise用于返回音频播放器信息。 |
| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise用于返回音频渲染器信息。 |
**示例:**
......@@ -1545,9 +1923,9 @@ getRendererInfo(): Promise<AudioRendererInfo\>
let streamInfo = await audioRenderer.getStreamInfo();
console.log('Renderer GetStreamInfo:');
console.log('Renderer sampling rate:' + streamInfo.samplingRate);
console.log('Renderer channel:' + streamInfo.AudioChannel);
console.log('Renderer format:' + streamInfo.AudioSampleFormat);
console.log('Renderer encoding type:' + streamInfo.AudioEncodingType);
console.log('Renderer channel:' + streamInfo.channels);
console.log('Renderer format:' + streamInfo.sampleFormat);
console.log('Renderer encoding type:' + streamInfo.encodingType);
```
### getStreamInfo<sup>8+</sup>
......@@ -1570,9 +1948,9 @@ getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
audioRenderer.getStreamInfo((err, streamInfo)=>{
console.log('Renderer GetStreamInfo:');
console.log('Renderer sampling rate:' + streamInfo.samplingRate);
console.log('Renderer channel:' + streamInfo.AudioChannel);
console.log('Renderer format:' + streamInfo.AudioSampleFormat);
console.log('Renderer encoding type:' + streamInfo.AudioEncodingType);
console.log('Renderer channel:' + streamInfo.channels);
console.log('Renderer format:' + streamInfo.sampleFormat);
console.log('Renderer encoding type:' + streamInfo.encodingType);
})
```
......@@ -1605,7 +1983,7 @@ console.log('Renderer encoding type:' + streamInfo.AudioEncodingType);
start(callback: AsyncCallback<void\>): void
启动音频播放器。使用callback方式异步返回结果。
启动音频渲染器。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1631,7 +2009,7 @@ audioRenderer.start((err)=>{
start(): Promise<void\>
启动音频播放器。使用Promise方式异步返回结果。
启动音频渲染器。使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1651,7 +2029,7 @@ await audioRenderer.start();
pause(callback: AsyncCallback\<void>): void
暂停音频播放器。使用callback方式异步返回结果。
暂停渲染。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1677,7 +2055,7 @@ audioRenderer.pause((err)=>{
pause(): Promise\<void>
暂停音频播放器。使用Promise方式异步返回结果。
暂停渲染。使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1697,7 +2075,7 @@ await audioRenderer.pause();
drain(callback: AsyncCallback\<void>): void
检查播放缓冲区是否已被耗尽。使用callback方式异步返回结果。
检查缓冲区是否已被耗尽。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1723,7 +2101,7 @@ audioRenderer.drain((err)=>{
drain(): Promise\<void>
检查播放缓冲区是否已被耗尽。使用Promise方式异步返回结果。
检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1743,7 +2121,7 @@ await audioRenderer.drain();
stop(callback: AsyncCallback\<void>): void
停止播放。使用callback方式异步返回结果。
停止渲染。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1769,7 +2147,7 @@ audioRenderer.stop((err)=>{
stop(): Promise\<void>
停止播放。使用Promise方式异步返回结果。
停止渲染。使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1789,7 +2167,7 @@ await audioRenderer.stop();
release(callback: AsyncCallback\<void>): void
释放音频播放器。使用callback方式异步返回结果。
释放音频渲染器。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1893,7 +2271,7 @@ if (writtenbytes < 0) {
getAudioTime(callback: AsyncCallback\<number>): void
获取时间戳。使用callback方式异步返回结果。
获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1915,7 +2293,7 @@ audioRenderer.getAudioTime((err, timestamp)=>{
getAudioTime(): Promise\<number>
获取时间戳。使用Promise方式异步返回结果。
获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1936,7 +2314,7 @@ console.log('Current timestamp: ' + timestamp);
getBufferSize(callback: AsyncCallback\<number>): void
获取音频播放器的最小缓冲区大小。使用callback方式异步返回结果。
获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1962,7 +2340,7 @@ ss.readSync(buf);
getBufferSize(): Promise\<number>
获取音频播放器的最小缓冲区大小。使用Promise方式异步返回结果。
获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1984,7 +2362,7 @@ ss.readSync(buf);
setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
设置音频播放速率。使用callback方式异步返回结果。
设置音频渲染速率。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -1992,7 +2370,7 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ------------------------ |
| rate | [AudioRendererRate](#audiorendererrate8) | 是 | 播放的速率。 |
| rate | [AudioRendererRate](#audiorendererrate8) | 是 | 渲染的速率。 |
| callback | AsyncCallback\<void> | 是 | 用于返回执行结果的回调。 |
**示例:**
......@@ -2011,7 +2389,7 @@ audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err)=>
setRenderRate(rate: AudioRendererRate): Promise\<void>
设置音频播放速率。使用Promise方式异步返回结果。
设置音频渲染速率。使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -2019,7 +2397,7 @@ setRenderRate(rate: AudioRendererRate): Promise\<void>
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ---------------------------------------- | ---- | ------------ |
| rate | [AudioRendererRate](#audiorendererrate8) | 是 | 播放的速率。 |
| rate | [AudioRendererRate](#audiorendererrate8) | 是 | 渲染的速率。 |
**返回值:**
......@@ -2037,7 +2415,7 @@ await audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL);
getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
获取当前播放速率。使用callback方式异步返回结果。
获取当前渲染速率。使用callback方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -2045,7 +2423,7 @@ getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------- | ---- | ------------------ |
| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | 是 | 回调返回播放速率。 |
| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | 是 | 回调返回渲染速率。 |
**示例:**
......@@ -2059,7 +2437,7 @@ audioRenderer.getRenderRate((err, renderrate)=>{
getRenderRate(): Promise\<AudioRendererRate>
获取当前播放速率。使用Promise方式异步返回结果。
获取当前渲染速率。使用Promise方式异步返回结果。
**系统能力**: SystemCapability.Multimedia.Audio.Renderer
......@@ -2067,7 +2445,7 @@ getRenderRate(): Promise\<AudioRendererRate>
| 类型 | 说明 |
| ------------------------------------------------- | ------------------------- |
| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise回调返回播放速率。 |
| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise回调返回渲染速率。 |
**示例:**
......@@ -2076,7 +2454,7 @@ let renderRate = await audioRenderer.getRenderRate();
console.log('getRenderRate: ' + renderrate);
```
### on('interrupt')<sup>8+</sup>
### on('interrupt')<sup>9+</sup>
on(type: 'interrupt', callback: Callback\<InterruptEvent>): void
......@@ -2089,7 +2467,7 @@ on(type: 'interrupt', callback: Callback\<InterruptEvent>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'interrupt'(中断事件被触发,音频播放被中断。) |
| callback | Callback<[InterruptEvent](#interruptevent8)> | 是 | 被监听的中断事件的回调。 |
| callback | Callback<[InterruptEvent](#interruptevent9)> | 是 | 被监听的中断事件的回调。 |
**示例:**
......@@ -2121,5 +2499,693 @@ audioRenderer.on('interrupt', (interruptEvent) => {
})
```
### on('markReach')<sup>8+</sup>
on(type: 'markReach', frame: number, callback: (position: number) => {}): void
订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被调用。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :----------------------- | :--- | :---------------------------------------- |
| type | string | 是 | 事件回调类型,支持的事件为:'markReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 |
| callback | (position: number) => {} | 是 | 触发事件时调用的回调。 |
**示例:**
```
audioRenderer.on('markReach', 1000, (position) => {
if (position == "1000") {
console.log('ON Triggered successfully');
}
});
```
### off('markReach') <sup>8+</sup>
off(type: 'markReach'): void
取消订阅标记事件。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----- | :--- | :------------------------------------------------ |
| type | string | 是 | 要取消订阅事件的类型。支持的事件为:'markReach'。 |
**示例:**
```
audioRenderer.off('markReach');
```
### on('periodReach') <sup>8+</sup>
on(type: "periodReach", frame: number, callback: (position: number) => {}): void
订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被循环调用。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :----------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 |
| callback | (position: number) => {} | 是 | 触发事件时调用的回调。 |
**示例:**
```
audioRenderer.on('periodReach', 1000, (position) => {
if (position == "1000") {
console.log('ON Triggered successfully');
}
});
```
### off('periodReach') <sup>8+</sup>
off(type: 'periodReach'): void
取消订阅标记事件。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----- | :--- | :-------------------------------------------------- |
| type | string | 是 | 要取消订阅事件的类型。支持的事件为:'periodReach'。 |
**示例:**
```
audioRenderer.off('periodReach')
```
### on('stateChange') <sup>8+</sup>
on(type: 'stateChange', callback: Callback<AudioState\>): void
订阅监听状态变化。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'stateChange'。 |
| callback | [AudioState](#AudioState8) | 是 | 返回监听的状态。 |
**示例:**
```
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");
}
});
```
## AudioCapturer<sup>8+</sup>
提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。
### state<sup>8+</sup>
只读 state: AudioState
定义当前采集器状态。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
| 名称 | 参数型 | 可读 | 可写 | 说明 |
| :---- | :------------------------- | :--- | :--- | :--------------- |
| state | [AudioState](#audiostate8) | Yes | No | 音频采集器状态。 |
**示例:**
```
var state = audioCapturer.state;
```
### getCapturerInfo<sup>8+</sup>
getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo\>): void
获取采集器信息。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :-------------------------------- | :--- | :----------------------------------- |
| callback | AsyncCallback<AudioCapturerInfo\> | 是 | 使用callback方式异步返回采集器信息。 |
**示例:**
```
audioCapturer.getCapturerInfo((err, capturerInfo)=>{
if (err) {
console.error('Failed to get capture info');
} else {
console.log('Capturer getCapturerInfo:');
console.log('Capturer source:' + capturerInfo.source);
console.log('Capturer flags:' + capturerInfo.capturerFlags);
}
});
```
### getCapturerInfo<sup>8+</sup>
getCapturerInfo(): Promise<AudioCapturerInfo\>
获取采集器信息。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :------------------------------------------------ | :---------------------------------- |
| Promise<[AudioCapturerInfo](#audiocapturerinfo)\> | 使用Promise方式异步返回采集器信息。 |
**示例:**
```
audioCapturer.getCapturerInfo().then((capturerInfo) => {
console.log('Capturer getCapturerInfo:');
console.log('Capturer source:' + capturerInfo.source);
console.log('Capturer flags:' + capturerInfo.capturerFlags);
}).catch ((err) => {
console.log("Failed to get capturer info");
});
```
### getStreamInfo<sup>8+</sup>
getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
获取采集器流信息。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :-------------------------------------------------------- | :--- | :------------------------------- |
| callback | AsyncCallback<[AudioStreamInfo](#AudioRendererOptions8)\> | 是 | 使用callback方式异步返回流信息。 |
**示例:**
```
audioCapturer.start((err)=>{
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);
}
});
```
### getStreamInfo<sup>8+</sup>
getStreamInfo(): Promise<AudioStreamInfo\>
获取采集器流信息。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :-------------------------------------------------- | :------------------------------ |
| Promise<[AudioStreamInfo](#AudioRendererOptions8)\> | 使用Promise方式异步返回流信息。 |
**示例:**
```
audioCapturer.getStreamInfo().then((streamInfo) => {
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);
}).catch ((err) => {
console.log("Failed to get stream info");
});
```
### start<sup>8+</sup>
start(callback: AsyncCallback<void\>): void
启动音频采集器。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 |
**示例:**
```
audioCapturer.start((err)=>{
if (err) {
console.error('Capturer start failed.');
} else {
console.info('Capturer start success.');
}
});
```
### start<sup>8+</sup>
start(): Promise<void\>
启动音频采集器。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
**示例:**
```
audioCapturer.start().then(() => {
console.log("capturer start success");
}).catch ((err) => {
console.log("Failed to start capturer");
});
```
### stop<sup>8+</sup>
stop(callback: AsyncCallback<void\>): void
停止采集。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 |
**示例:**
```
audioCapturer.stop((err)=>{
if (err) {
console.error('Capturer stop failed');
} else {
console.log('Capturer stopped.');
}
});
```
### stop<sup>8+</sup>
stop(): Promise<void\>
停止采集。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
**示例:**
```
audioCapturer.stop().then(() => {
console.log("capturer stop success");
}).catch ((err) => {
console.log("Failed to stop capturer");
});
```
### release<sup>8+</sup>
release(callback: AsyncCallback<void\>): void
释放采集器。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :---------------------------------- |
| callback | AsyncCallback<void\> | 是 | Callback used to return the result. |
**示例:**
```
audioCapturer.release((err)=>{
if (err) {
console.error('capturer release failed');
} else {
console.log('capturer released.');
}
});
```
### release<sup>8+</sup>
release(): Promise<void\>
释放采集器。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
**示例:**
```
audioCapturer.release().then(() => {
console.log("capturer release success");
}).catch ((err) => {
console.log("Failed to release capturer");
});
```
### read<sup>8+</sup>
read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\>): void
读入缓冲区。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| :------------- | :-------------------------- | :--- | :------------------------------- |
| size | number | 是 | 读入的字节数。 |
| isBlockingRead | boolean | 是 | 是否阻塞读操作。 |
| callback | AsyncCallback<ArrayBuffer\> | 是 | 使用callback方式异步返回缓冲区。 |
**示例:**
```
audioCapturer.read(bufferSize, true, async(err, buffer) => {
if (!err) {
console.log("Success in reading the buffer data");
var number = fileio.writeSync(fd, buffer);
}
};
```
### read<sup>8+</sup>
read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer\>
读入缓冲区。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------------- | :------ | :--- | :--------------- |
| size | number | 是 | 读入的字节数。 |
| isBlockingRead | boolean | 是 | 是否阻塞读操作。 |
**返回值:**
| 类型 | 说明 |
| :-------------------- | :----------------------------------------------------- |
| Promise<ArrayBuffer\> | 如果操作成功,返回读取的缓冲区数据;否则返回错误代码。 |
**示例:**
```
audioCapturer.read(size, true).then((buffer) => {
console.log("Success in reading the buffer data");
var number = fileio.writeSync(fd, buffer);
}).catch ((err) => {
console.log("Failed to read data!");
});
```
### getAudioTime<sup>8+</sup>
getAudioTime(callback: AsyncCallback<number\>): void
获取时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :--------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<number\> | 是 | 使用callback方式异步返回结果。 |
**示例:**
```
audioCapturer.getAudioTime((err, timestamp)=>{
console.log('Current timestamp: ' + timestamp);
});
```
### getAudioTime<sup>8+</sup>
getAudioTime(): Promise<number\>
获取时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :--------------- | :---------------------------- |
| Promise<number\> | 使用Promise方式异步返回结果。 |
**示例:**
```
audioCapturer.getAudioTime().then((audioTime) => {
console.log("Success in getting the audio time");
}).catch ((err) => {
console.log("Failed to get the audio time");
});
```
### getBufferSize<sup>8+</sup>
getBufferSize(callback: AsyncCallback<number\>): void
获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :--------------------- | :--- | :----------------------------------- |
| callback | AsyncCallback<number\> | 是 | 使用callback方式异步返回缓冲区大小。 |
**示例:**
```
audioCapturer.getBufferSize((err, bufferSize)=>{
if (!err) {
console.log('BufferSize : ' + bufferSize);
var buffer = await audioCapturer.read(bufferSize, true);
}
});
```
### getBufferSize<sup>8+</sup>
getBufferSize(): Promise<number\>
获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :--------------- | :---------------------------------- |
| Promise<number\> | 使用Promise方式异步返回缓冲区大小。 |
**示例:**
```
audioCapturer.getBufferSize().then((bufferSize) => {
console.log("Success in getting the buffer size");
var buffer = await audioCapturer.read(bufferSize, true);
}).catch ((err) => {
console.log("Failed to get the buffer size");
});
```
### on('markReach')<sup>8+</sup>
on(type: 'markReach', frame: number, callback: (position: number) => {}): void
订阅标记到达的事件。 当采集的帧数达到 frame 参数的值时,回调被触发。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :---------------------- | :--- | :----------------------------------------- |
| type | string | 是 | 事件回调类型,支持的事件为:'markReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于0。 |
| callback | position: number) => {} | 是 | 使用callback方式异步返回被触发事件的回调。 |
**示例:**
```
audioCapturer.on('markReach', 1000, (position) => {
if (position == "1000") {
console.log('ON Triggered successfully');
}
});
```
### off('markReach')<sup>8+</sup>
off(type: 'markReach'): void
取消订阅标记到达的事件。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----- | :--- | :-------------------------------------------- |
| type | string | 是 | 取消事件回调类型,支持的事件为:'markReach'。 |
**示例:**
```
audioCapturer.off('markReach');
```
### on('periodReach')<sup>8+</sup>
on(type: "periodReach", frame: number, callback: (position: number) => {}): void
订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,回调被循环调用。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :----------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于0。 |
| callback | (position: number) => {} | 是 | 使用callback方式异步返回被触发事件的回调 |
**示例:**
```
audioCapturer.on('periodReach', 1000, (position) => {
if (position == "1000") {
console.log('ON Triggered successfully');
}
});
```
### off('periodReach')<sup>8+</sup>
off(type: 'periodReach'): void
取消订阅标记到达的事件。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----- | :--- | :---------------------------------------------- |
| type | string | Yes | 取消事件回调类型,支持的事件为:'periodReach'。 |
**示例:**
```
audioCapturer.off('periodReach')
```
### on('stateChange') <sup>8+</sup>
on(type: 'stateChange', callback: Callback<AudioState\>): void
订阅监听状态变化。
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'stateChange'。 |
| callback | [AudioState](#AudioState8) | 是 | 返回监听的状态。 |
**示例:**
```
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");
}
});
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册