diff --git a/harmony/audio/src/main/ets/AudioRecordManager.ts b/harmony/audio/src/main/ets/AudioRecordManager.ts index 532829a5263374cb6ce618f99b2bbbaeabbbdafc..1770213e884390d5a5f0007124382f592d166f6a 100644 --- a/harmony/audio/src/main/ets/AudioRecordManager.ts +++ b/harmony/audio/src/main/ets/AudioRecordManager.ts @@ -64,16 +64,16 @@ export class AudioRecordManager { async prepareRecordingAtPath(path: string, options: RecordingOptions): Promise { if (this.isRecording) { this.logger.error('Please call stopRecording before starting recording.'); - return; + return Promise.reject('Please call stopRecording before starting recording.') } if (path === '') { this.logger.error('Invalid path.'); - return; + return Promise.reject('Invalid path.') } const isAuthorization = await this.checkAuthorizationStatus(); if (!isAuthorization) { this.logger.error('Please obtain microphone authorization first.'); - return; + return Promise.reject('Please obtain microphone authorization first.') } try { //创建录制实例 @@ -102,15 +102,12 @@ export class AudioRecordManager { this.file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); this.avConfig.url = `fd://${this.file.fd}`; this.includeBase64 = options.IncludeBase64; - await this.avRecorder.prepare(this.avConfig).then((res) => { - this.logger.info(`${res}.`); - }).catch((err) => { - this.logger.error(`${err}.`); - }); + await this.avRecorder.prepare(this.avConfig) this.logger.info(`Recording is prepared.`); this.logger.debug('Recording is prepared.'); } catch (error) { this.logger.error(`${JSON.stringify(error)}.`); + return Promise.reject(error) } } @@ -150,6 +147,7 @@ export class AudioRecordManager { } } catch (error) { this.logger.error(`requestPermissionsFromUser failed, code is ${error?.code}, message is ${error?.message}.`); + return Promise.reject(error) } } @@ -165,17 +163,19 @@ export class AudioRecordManager { tokenId = appInfo.accessTokenId; } catch (error) { this.logger.error(`getBundleInfoForSelf failed, code is ${error?.code}, message is ${error?.message}.`); + return Promise.reject(error) } //检查应用是否被授予权限 try { grantStatus = await atManager.checkAccessToken(tokenId, permission); } catch (error) { this.logger.error(`checkAccessToken failed, code is ${error?.code}, message is ${error?.message}.`); + return Promise.reject(error) } return grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED; } - //格式化音频输入源 + //格式化音频输入源 getAudioSourceFormatString(audioSource: number) { switch (audioSource) { case 0: @@ -215,11 +215,12 @@ export class AudioRecordManager { try { if (this.avRecorder.state === AVRecorderStateEnum.STARTED || this.avRecorder.state === AVRecorderStateEnum.PAUSED) { this.logger.error('Please call stopRecording before starting recording.'); - return; + return Promise.reject('Please call stopRecording before starting recording.') + } if (this.avRecorder.state !== AVRecorderStateEnum.PREPARED) { this.logger.error('Please call prepareRecording before starting recording.'); - return; + return Promise.reject('Please call prepareRecording before starting recording.') } await this.avRecorder.start(); this.isRecording = true; @@ -230,6 +231,7 @@ export class AudioRecordManager { this.startTimer(); } catch (error) { this.logger.error(`startRecording failed, code is ${error?.code}, message is ${error?.message}.`); + return Promise.reject(error) } } @@ -242,10 +244,11 @@ export class AudioRecordManager { this.logger.debug('pause recording.'); } catch (error) { this.logger.error(`pauseRecording failed, code is ${error?.code}, message is ${error?.message}.`); + return Promise.reject(error) } } else { this.logger.error('It is reasonable to call pauseRecording only in the started state.'); - return; + return Promise.reject('It is reasonable to call pauseRecording only in the started state.') } } @@ -258,10 +261,11 @@ export class AudioRecordManager { this.logger.debug('resume recording.'); } catch (error) { this.logger.error(`resumeRecording failed. code is ${error?.code}, message is ${error?.message}.`); + return Promise.reject(`resumeRecording failed. code is ${error?.code}, message is ${error?.message}.`) } } else { this.logger.error('It is reasonable to call resumeRecording only in the paused state.'); - return; + return Promise.reject('It is reasonable to call resumeRecording only in the paused state.') } } @@ -288,7 +292,7 @@ export class AudioRecordManager { } } else { this.logger.error('It is reasonable to call stopRecording only in the started or paused state.'); - return; + return Promise.reject('It is reasonable to call stopRecording only in the started or paused state.') } }