import 'dart:async'; import 'dart:typed_data'; import 'package:demo001/xunfei/task_trans.dart'; abstract class ISDK { //创建翻译任务 ITaskTrans createTransTask(TaskStateChangeEvent onEvent); } abstract class ITaskTrans { int state(); String originalText(); String translateText(); Stream originalAudio(); Stream translateAudio(); void addAudioData(Uint8List data); void endpuish(); } class Xunfei implements ISDK { final String appId; final String apiKey; final String apiSecret; //静态变量保存唯一实例 static Xunfei? _instance; Xunfei._internal({ required this.appId, required this.apiKey, required this.apiSecret, }); //工厂构造函数 factory Xunfei({ required String appId, required String apiKey, required String apiSecret, }) { _instance ??= Xunfei._internal( appId: appId, apiKey: apiKey, apiSecret: apiSecret, ); return _instance!; } ITaskTrans createTransTask(TaskStateChangeEvent onEvent) { var task = XunferTaskTrans( appId: this.appId, apiKey: this.apiKey, apiSecret: this.apiSecret, onEvent: onEvent); return task; } }