From 136062b380d39a76e56ffdec4b5564a1c2263136 Mon Sep 17 00:00:00 2001 From: Ryan <865833921@qq.com> Date: Wed, 2 Jul 2025 10:16:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/Recorder.ets | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/entry/src/main/ets/pages/Recorder.ets b/entry/src/main/ets/pages/Recorder.ets index 2d12640..1a449c6 100644 --- a/entry/src/main/ets/pages/Recorder.ets +++ b/entry/src/main/ets/pages/Recorder.ets @@ -46,18 +46,18 @@ async function releaseCamera(): Promise { }); } // Stop the Session. - videoSession.stop(); + await videoSession.stop(); // Close file fd. fileIo.close(params.outputfd); // Close camera input stream. - cameraInput.close(); + await cameraInput.close(); // Release preview output stream. - XComponentPreviewOutput.release(); + await XComponentPreviewOutput.release(); // Release the video output stream. - encoderVideoOutput.release(); + await encoderVideoOutput.release(); Logger.info(TAG, 'encoderVideoOutput release'); // Release session. - videoSession.release(); + await videoSession.release(); } // [Start set_video_color] @@ -155,12 +155,9 @@ struct Recorder { this.seconds = 0; this.videoRecorderTimeText = Const.DEFAULT_TIME; - recorder.stopNative().then(async (data) => { - if (data.code === 0) { - await releaseCamera(); - this.playFlag = false; - } - }); + recorder.stopNative() + await releaseCamera(); + this.playFlag = false; } } -- Gitee From 4d8ace0208452368490f4028d5f5cecfe30230ed Mon Sep 17 00:00:00 2001 From: Ryan <865833921@qq.com> Date: Wed, 2 Jul 2025 10:24:26 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/cpp/sample/recorder/Recorder.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/entry/src/main/cpp/sample/recorder/Recorder.cpp b/entry/src/main/cpp/sample/recorder/Recorder.cpp index 396fd73..8b1418c 100644 --- a/entry/src/main/cpp/sample/recorder/Recorder.cpp +++ b/entry/src/main/cpp/sample/recorder/Recorder.cpp @@ -42,9 +42,7 @@ int32_t Recorder::Init(SampleInfo &sampleInfo) { videoEncoder_ = std::make_unique(); muxer_ = std::make_unique(); - int32_t ret = videoEncoder_->Create(sampleInfo_.videoCodecMime); - CHECK_AND_RETURN_RET_LOG(ret == AVCODEC_SAMPLE_ERR_OK, ret, "Create video encoder failed"); - ret = muxer_->Create(sampleInfo_.outputFd); + int32_t ret = muxer_->Create(sampleInfo_.outputFd); CHECK_AND_RETURN_RET_LOG(ret == AVCODEC_SAMPLE_ERR_OK, ret, "Create muxer with fd(%{public}d) failed", sampleInfo_.outputFd); ret = muxer_->Config(sampleInfo_); -- Gitee From ff6560bb41fc098461ca5832b0c27a2389a2dbf5 Mon Sep 17 00:00:00 2001 From: Ryan <865833921@qq.com> Date: Wed, 2 Jul 2025 10:24:38 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/Recorder.ets | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/entry/src/main/ets/pages/Recorder.ets b/entry/src/main/ets/pages/Recorder.ets index 1a449c6..2d12640 100644 --- a/entry/src/main/ets/pages/Recorder.ets +++ b/entry/src/main/ets/pages/Recorder.ets @@ -46,18 +46,18 @@ async function releaseCamera(): Promise { }); } // Stop the Session. - await videoSession.stop(); + videoSession.stop(); // Close file fd. fileIo.close(params.outputfd); // Close camera input stream. - await cameraInput.close(); + cameraInput.close(); // Release preview output stream. - await XComponentPreviewOutput.release(); + XComponentPreviewOutput.release(); // Release the video output stream. - await encoderVideoOutput.release(); + encoderVideoOutput.release(); Logger.info(TAG, 'encoderVideoOutput release'); // Release session. - await videoSession.release(); + videoSession.release(); } // [Start set_video_color] @@ -155,9 +155,12 @@ struct Recorder { this.seconds = 0; this.videoRecorderTimeText = Const.DEFAULT_TIME; - recorder.stopNative() - await releaseCamera(); - this.playFlag = false; + recorder.stopNative().then(async (data) => { + if (data.code === 0) { + await releaseCamera(); + this.playFlag = false; + } + }); } } -- Gitee From 9d132de6c9fd159f18f8d135f2891c5e6bc816aa Mon Sep 17 00:00:00 2001 From: Ryan <865833921@qq.com> Date: Wed, 2 Jul 2025 10:35:29 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/cpp/sample/recorder/RecorderNative.cpp | 10 ++-------- entry/src/main/ets/pages/Recorder.ets | 9 +++------ 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/entry/src/main/cpp/sample/recorder/RecorderNative.cpp b/entry/src/main/cpp/sample/recorder/RecorderNative.cpp index 91894ea..9feea16 100644 --- a/entry/src/main/cpp/sample/recorder/RecorderNative.cpp +++ b/entry/src/main/cpp/sample/recorder/RecorderNative.cpp @@ -146,14 +146,8 @@ napi_value RecorderNative::Stop(napi_env env, napi_callback_info info) { asyncCallbackInfo->asyncWork = nullptr; asyncCallbackInfo->deferred = deferred; - napi_value resourceName; - napi_create_string_latin1(env, "recorder", NAPI_AUTO_LENGTH, &resourceName); - napi_create_async_work( - env, nullptr, resourceName, [](napi_env env, void *data) { NativeStop(env, data); }, - [](napi_env env, napi_status status, void *data) { DealCallBack(env, data); }, (void *)asyncCallbackInfo, - &asyncCallbackInfo->asyncWork); - napi_queue_async_work(env, asyncCallbackInfo->asyncWork); - return promise; + NativeStop(env, asyncCallbackInfo); + return nullptr; } EXTERN_C_START diff --git a/entry/src/main/ets/pages/Recorder.ets b/entry/src/main/ets/pages/Recorder.ets index 2d12640..b6da2d2 100644 --- a/entry/src/main/ets/pages/Recorder.ets +++ b/entry/src/main/ets/pages/Recorder.ets @@ -155,12 +155,9 @@ struct Recorder { this.seconds = 0; this.videoRecorderTimeText = Const.DEFAULT_TIME; - recorder.stopNative().then(async (data) => { - if (data.code === 0) { - await releaseCamera(); - this.playFlag = false; - } - }); + recorder.stopNative(); + await releaseCamera(); + this.playFlag = false; } } -- Gitee