From c24d095dca74977b472c20ce03ff6c40f4bc9bf2 Mon Sep 17 00:00:00 2001 From: wangyue Date: Wed, 5 Feb 2025 16:47:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20audioManager=E6=8A=9B=E5=87=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangyue --- .../audio/src/main/ets/AudioRecordManager.ts | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/harmony/audio/src/main/ets/AudioRecordManager.ts b/harmony/audio/src/main/ets/AudioRecordManager.ts index 532829a..1770213 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.') } } -- Gitee