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