未验证 提交 9ef17912 编写于 作者: S shuboxu 提交者: Gitee

update en/application-dev/media/using-avrecorder-for-recording.md.

Signed-off-by: Nshuboxu <xushubo1@huawei.com>
上级 034e86dc
...@@ -20,11 +20,11 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re ...@@ -20,11 +20,11 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
```ts ```ts
import media from '@ohos.multimedia.media'; import media from '@ohos.multimedia.media';
let avRecorder = undefined; let avRecorder: media.AVRecorder;
media.createAVRecorder().then((recorder) => { media.createAVRecorder().then((recorder: media.AVRecorder) => {
avRecorder = recorder; avRecorder = recorder;
}, (err) => { }, (error: Error) => {
console.error(`Invoke createAVRecorder failed, code is ${err.code}, message is ${err.message}`); console.error(`createAVRecorder failed`);
}) })
``` ```
...@@ -37,13 +37,13 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re ...@@ -37,13 +37,13 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
```ts ```ts
// Callback function for state changes. // Callback function for state changes.
avRecorder.on('stateChange', (state, reason) => { avRecorder.on('stateChange', (state: media.AVRecorderState, reason: media.StateChangeReason) => {
console.log(`current state is ${state}`); console.log(`current state is ${state}`);
// You can add the action to be performed after the state is switched. // You can add the action to be performed after the state is switched.
}) })
// Callback function for errors. // Callback function for errors.
avRecorder.on('error', (err) => { avRecorder.on('error', (err: BusinessError) => {
console.error(`avRecorder failed, code is ${err.code}, message is ${err.message}`); console.error(`avRecorder failed, code is ${err.code}, message is ${err.message}`);
}) })
``` ```
...@@ -62,21 +62,33 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re ...@@ -62,21 +62,33 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
```ts ```ts
let avProfile = { class AVProfile {
audioBitrate: number;
audioChannels: number;
audioCodec: media.CodecMimeType;
audioSampleRate: number;
fileFormat: media.ContainerFormatType;
}
class AVConfig {
audioSourceType: media.AudioSourceType;
profile: AVProfile;
url: string
}
let avProfile: AVProfile = {
audioBitrate: 100000, // Audio bit rate. audioBitrate: 100000, // Audio bit rate.
audioChannels: 2, // Number of audio channels. audioChannels: 2, // Number of audio channels.
audioCodec: media.CodecMimeType.AUDIO_AAC, // Audio encoding format. Currently, only AAC is supported. audioCodec: media.CodecMimeType.AUDIO_AAC, // Audio encoding format. Currently, only AAC is supported.
audioSampleRate: 48000, // Audio sampling rate. audioSampleRate: 48000, // Audio sampling rate.
fileFormat: media.ContainerFormatType.CFT_MPEG_4A, // Encapsulation format. Currently, only M4A is supported. fileFormat: media.ContainerFormatType.CFT_MPEG_4A, // Encapsulation format. Currently, only M4A is supported.
} }
let avConfig = { let avConfig: AVConfig = {
audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC, // Audio input source. In this example, the microphone is used. audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC, // Audio input source. In this example, the microphone is used.
profile: avProfile, profile: avProfile,
url: 'fd://35', // Obtain the file descriptor of the created audio file by referring to the sample code in Application File Access and Management. url: 'fd://35', // Obtain the file descriptor of the created audio file by referring to the sample code in Application File Access and Management.
} }
avRecorder.prepare(avConfig).then(() => { avRecorder.prepare(avConfig).then(() => {
console.log('Invoke prepare succeeded.'); console.log('Invoke prepare succeeded.');
}, (err) => { }, (err: BusinessError) => {
console.error(`Invoke prepare failed, code is ${err.code}, message is ${err.message}`); console.error(`Invoke prepare failed, code is ${err.code}, message is ${err.message}`);
}) })
``` ```
...@@ -100,17 +112,30 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re ...@@ -100,17 +112,30 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
```ts ```ts
import media from '@ohos.multimedia.media'; import media from '@ohos.multimedia.media';
import { BusinessError } from '@ohos.base';
class AVProfile {
audioBitrate: number;
audioChannels: number;
audioCodec: media.CodecMimeType;
audioSampleRate: number;
fileFormat: media.ContainerFormatType;
}
class AVConfig {
audioSourceType: media.AudioSourceType;
profile: AVProfile;
url: string
}
export class AudioRecorderDemo { export class AudioRecorderDemo {
private avRecorder; private avRecorder: media.AVRecorder;
private avProfile = { private avProfile: AVProfile = {
audioBitrate: 100000, // Audio bit rate. audioBitrate: 100000, // Audio bit rate.
audioChannels: 2, // Number of audio channels. audioChannels: 2, // Number of audio channels.
audioCodec: media.CodecMimeType.AUDIO_AAC, // Audio encoding format. Currently, only AAC is supported. audioCodec: media.CodecMimeType.AUDIO_AAC, // Audio encoding format. Currently, only AAC is supported.
audioSampleRate: 48000, // Audio sampling rate. audioSampleRate: 48000, // Audio sampling rate.
fileFormat: media.ContainerFormatType.CFT_MPEG_4A, // Encapsulation format. Currently, only M4A is supported. fileFormat: media.ContainerFormatType.CFT_MPEG_4A, // Encapsulation format. Currently, only M4A is supported.
}; };
private avConfig = { private avConfig: AVConfig = {
audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC, // Audio input source. In this example, the microphone is used. audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC, // Audio input source. In this example, the microphone is used.
profile: this.avProfile, profile: this.avProfile,
url: 'fd://35', // Create, read, and write a file by referring to the sample code in Application File Access and Management. url: 'fd://35', // Create, read, and write a file by referring to the sample code in Application File Access and Management.
...@@ -119,11 +144,11 @@ export class AudioRecorderDemo { ...@@ -119,11 +144,11 @@ export class AudioRecorderDemo {
// Set AVRecorder callback functions. // Set AVRecorder callback functions.
setAudioRecorderCallback() { setAudioRecorderCallback() {
// Callback function for state changes. // Callback function for state changes.
this.avRecorder.on('stateChange', (state, reason) => { this.avRecorder.on('stateChange', (state: media.AVRecorderState, reason: media.StateChangeReason) => {
console.log(`AudioRecorder current state is ${state}`); console.log(`AudioRecorder current state is ${state}`);
}) })
// Callback function for errors. // Callback function for errors.
this.avRecorder.on('error', (err) => { this.avRecorder.on('error', (err: BusinessError) => {
console.error(`AudioRecorder failed, code is ${err.code}, message is ${err.message}`); console.error(`AudioRecorder failed, code is ${err.code}, message is ${err.message}`);
}) })
} }
...@@ -158,7 +183,7 @@ export class AudioRecorderDemo { ...@@ -158,7 +183,7 @@ export class AudioRecorderDemo {
async stopRecordingProcess() { async stopRecordingProcess() {
// 1. Stop recording. // 1. Stop recording.
if (this.avRecorder.state === 'started' if (this.avRecorder.state === 'started'
|| this.avRecorder.state ==='paused') { // stop() can be called only when the AVRecorder is in the started or paused state. || this.avRecorder.state ==='paused') { // stop() can be called only when the AVRecorder is in the started or paused state.
await this.avRecorder.stop(); await this.avRecorder.stop();
} }
// 2. Reset the AVRecorder. // 2. Reset the AVRecorder.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册