|
- 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<Uint8List> originalAudio();
- Stream<Uint8List> 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;
- }
- }
|