@coze/uniapp-api
Version:
Official Coze UniApp SDK for seamless AI integration into your applications | 扣子官方 UniApp SDK,助您轻松集成 AI 能力到应用中
111 lines (110 loc) • 3.71 kB
TypeScript
import { type WsChatCallbackHandler, type WsChatEventData, type WsToolsOptions } from '@coze/api/ws-tools';
import { type CreateChatWsReq, type CreateChatWsRes, type WebSocketAPI } from '@coze/api';
import PcmStreamPlayer from '../pcm-stream-player';
import { CozeAPI } from '../../api';
export interface WsChatClientOptions extends WsToolsOptions {
/**
* en: Bot id
* zh: 智能体 ID
*/
botId: string;
/**
* en: Workflow id
* zh: 工作流 ID
*/
workflowId?: string;
/**
* en: Voice id
* zh: 音色 ID
*/
voiceId?: string;
/**
* en: Whether to mute by default
* zh: 是否默认静音
*/
audioMutedDefault?: boolean;
/**
* en: Default volume for audio playback (0.0 to 1.0, 0.0 means muted)
* zh: 默认音频播放音量(0.0 到 1.0,0.0 表示静音)
*/
playbackVolumeDefault?: number;
}
/**
* Base class for WebSocket-based chat client for WeChat Mini Program
*/
export declare class BaseWsChatClient {
ws: WebSocketAPI<CreateChatWsReq, CreateChatWsRes> | null;
protected listeners: Map<string, Set<WsChatCallbackHandler>>;
protected wavStreamPlayer: PcmStreamPlayer;
protected trackId: string;
protected api: CozeAPI;
protected audioDeltaList: string[];
config: WsChatClientOptions;
constructor(config: WsChatClientOptions);
/**
* Initialize WebSocket connection and setup event handlers
* @returns {Promise<WebSocketAPI>} The WebSocket API instance
*/
protected init(): Promise<WebSocketAPI<CreateChatWsReq, CreateChatWsRes>>;
/**
* Send a message to the chat server
* @param {CreateChatWsReq} data - The message data to send
*/
sendMessage(data: CreateChatWsReq): void;
/**
* Send a text message to the chat server
* @param {string} text - The text message to send
*/
sendTextMessage(text: string): void;
/**
* Add event listener(s)
* @param {string | string[]} event - Event name or array of event names
* @param {WsChatCallbackHandler} callback - Event callback function
*/
on(event: string | string[], callback: WsChatCallbackHandler): void;
/**
* Remove event listener(s)
* @param {string | string[]} event - Event name or array of event names
* @param {WsChatCallbackHandler} callback - Event callback function to remove
*/
off(event: string | string[], callback: WsChatCallbackHandler): void;
/**
* Close the WebSocket connection
*/
protected closeWs(): void;
/**
* Clear audio buffers and interrupt current playback
*/
clear(): void;
/**
* Set playback volume level
* @param {number} volume - Volume level from 0.0 (muted) to 1.0 (full volume)
*/
setPlaybackVolume(volume: number): void;
/**
* Get current playback volume level
* @returns {number} Current volume level from 0.0 (muted) to 1.0 (full volume)
*/
getPlaybackVolume(): number;
/**
* Emit an event to all registered listeners
* @param {string} eventName - The name of the event
* @param {WsChatEventData} event - The event data
*/
protected emit(eventName: string, event: WsChatEventData): void;
/**
* Handle incoming audio messages from the server
*/
private handleAudioMessage;
/**
* Log a message if debug is enabled
* @param {...any} args - The arguments to log
*/
protected log(...args: any[]): boolean;
/**
* Log a warning message if debug is enabled
* @param {...any} args - The arguments to log
*/
protected warn(...args: any[]): boolean;
}
export default BaseWsChatClient;