From 67d8c4ec88b330163f463446e487c4a7f7ec2184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=B9=E6=9E=9C=E7=94=B5=E8=84=91?= Date: Thu, 12 Feb 2026 17:27:03 +0800 Subject: [PATCH] =?UTF-8?q?mac=E7=94=B5=E8=84=91=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ty-recording/utssdk/app-ios/index.uts | 48 +++++++++++++++---- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/src/uni_modules/ty-recording/utssdk/app-ios/index.uts b/src/uni_modules/ty-recording/utssdk/app-ios/index.uts index fe0854cd..b0358f33 100644 --- a/src/uni_modules/ty-recording/utssdk/app-ios/index.uts +++ b/src/uni_modules/ty-recording/utssdk/app-ios/index.uts @@ -1,11 +1,43 @@ +import { StartAudioRecordOptions } from '../interface.uts'; +import { StartAudioRecordFailImpl, AudioErrorCode } from '../unierror.uts'; + + +import { UTSiOS } from "DCloudUTSFoundation" + +// 线程安全的录制状态标识 +let isRecording = false; + + /** - * 引用 iOS 系统库,示例如下: - * import { UIDevice } from "UIKit"; - * [可选实现,按需引入] + * 启动音频采集(iOS端核心实现) + * @param options 采集配置及回调 */ +@UTSJS.keepAlive +export function startAudioRecord(options: StartAudioRecordOptions): void { + // 避免重复启动 + console.log('避免重复启动', isRecording); + if (isRecording) return; + + try { + const audioSession = AVAudioSession.sharedInstance(); + const authStatus = audioSession.recordPermission(); + console.log('asaadda', authStatus); + isRecording = true; + } catch (error) { + // 初始化失败回调错误 + const err = new StartAudioRecordFailImpl(AudioErrorCode.AUDIO_FORMAT_ILLEGAL); + options.onError?.(err); + // 重置状态 + + return; + } +} -/* 引入 interface.uts 文件中定义的变量 */ -import { MyApiOptions, MyApiResult, MyApi, MyApiSync } from '../interface.uts'; - -/* 引入 unierror.uts 文件中定义的变量 */ -import { MyApiFailImpl } from '../unierror'; +/** + * 停止音频采集(配套停止逻辑,保证功能完整) + * @param options 回调配置 + */ +@UTSJS.keepAlive +export function stopAudioRecord(): void { + +} \ No newline at end of file