xfyun-sdk
Version:
科大讯飞语音识别 SDK,支持浏览器中实时语音听写功能
63 lines (62 loc) • 1.82 kB
TypeScript
/**
* 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>;