UNPKG

@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
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;