UNPKG

xfyun-sdk

Version:

科大讯飞语音识别 SDK,支持浏览器中实时语音听写功能

63 lines (62 loc) 1.82 kB
/** * xfyun-sdk 通用客户端 Hook * * 封装了所有 xfyun-sdk 客户端的通用生命周期管理逻辑 * 包括:初始化、错误处理、状态同步、资源清理 * * @example * ```typescript * const clientRef = useXfyunClient( * () => new XfyunASR({ appId, apiKey, apiSecret }), * [appId, apiKey, apiSecret], * { * onStart: () => setState('recording'), * onStop: () => setState('stopped'), * onError: (error) => setState('error'), * } * ); * ``` */ /** * 客户端选项 */ export interface XfyunClientOptions<T> { /** 客户端实例的引用 */ clientRef: React.MutableRefObject<T | null>; /** 是否已销毁的引用(用于阻止异步回调) */ isDestroyedRef: React.MutableRefObject<boolean>; /** 开始回调 */ onStart?: () => void; /** 停止回调 */ onStop?: () => void; /** 结束回调 */ onEnd?: () => void; /** 错误回调 */ onError?: (error: unknown) => void; /** 状态变化回调 */ onStateChange?: (state: string) => void; } /** * Hook 返回类型 */ export interface UseXfyunClientReturn<T> { /** 客户端实例引用 */ clientRef: React.MutableRefObject<T | null>; /** 是否已销毁 */ isDestroyedRef: React.MutableRefObject<boolean>; /** 获取客户端实例(安全访问) */ getClient: () => T | null; /** 销毁客户端 */ destroy: () => void; } /** * 通用 xfyun-sdk 客户端 Hook * * @param createClient - 创建客户端实例的函数 * @param deps - useEffect 依赖数组 * @param options - 客户端选项 * @returns Hook 返回对象 */ export declare function useXfyunClient<T extends { destroy: () => void; }>(createClient: () => T, deps: unknown[], options: XfyunClientOptions<T>): UseXfyunClientReturn<T>;