@minto-ai/xunfei-tts
Version:
借助“讯飞在线语音合成API”实现浏览器端“文本转语音
95 lines (75 loc) • 2.21 kB
text/typescript
import type ExecuteController from '../../tts-controller'
import type { TaskExecuteContext } from '../types'
interface InterfaceHandler<O = unknown, R = unknown> {
/**
* 下一个处理器
* 链表中的下一个处理器,如果是链表中的最后一个处理器,则为null。
*/
nextHandler: InterfaceHandler<R, unknown> | null
/**
* 上一个处理器
* 链表中的上一个处理器,如果是链表中的第一个处理器,则为null。
*/
prevHandler: InterfaceHandler<unknown, O> | null
/**
* 当前处理器状态
*/
handlerStatus: any
/**
* 设置处理器链表,用于设置上一个或者下一个处理器
*
* @param handler 处理器
*/
linkHandler: (handler: InterfaceHandler<R, unknown>) => void
/**
* 处理器是否首次执行任务
*/
isFirstExecute: boolean
/**
* 处理器执行上下文
*/
executeController: ExecuteController | null
/**
* 设置处理器执行上下文
*
* @param executeController 执行上下文
*/
setExecuteController: (executeController: ExecuteController) => void
/**
* 是否为第一个处理器
*/
isFirstHandler: boolean
/**
* 是否为最后一个处理器
*/
isLastHandler: boolean
/**
* 向处理器输入任务数据
*
* @param original 任务数据
*/
handle: (original: O | null) => void
/**
* 将处理结果传递给下一个处理器,当做下一个处理器的任务数据
*/
forwardToHandler: (result: R) => void
/**
* 设置处理器的执行状态
*/
setHandlerStatus: (status: any) => void
/**
* 判断当前处理器是否处于指定执行状态
*/
equalHandlerStatus: (status: any) => boolean
/**
* 需要执行任务的具体逻辑
*
* @param context 当前执行者数据上下文(任务数据、是否首次执行、是否最后一次执行)
*/
execute: (context: TaskExecuteContext) => void
/**
* 处理器是否接受上一个处理传递的数据完毕
*/
isHandleDataAcceptedComplete: boolean
}
export default InterfaceHandler