setupMethodCallHandler static method
void
setupMethodCallHandler()
Implementation
static void setupMethodCallHandler() {
_subscription ??= _eventChannel.receiveBroadcastStream().listen(
(event) {
var map = event;
if (Platform.isAndroid) {
map = jsonDecode(map);
}
final String eventName = map['event'];
var params = map['params'];
TTFLogger.i('TTVideoEnginDownload', 'native to flutter eventChannel call:$eventName');
switch (eventName) {
case 'onComplete':
TTVideoEngineDownloadTask task = TTVideoEngineDownloadTask.fromJson(params['task']);
TTError? error;
int? errorCode = params['error_code'];
String? errorMsg = params['error_msg'];
if (errorCode != null || errorMsg != null) {
error = TTError(errorCode ?? 0, errorMsg ?? '');
} else {
error = null;
}
onComplete?.call(task, error);
break;
case 'onProgress':
TTVideoEngineDownloadTask task = TTVideoEngineDownloadTask.fromJson(params['task']);
onProgress?.call(task, task.progress!);
break;
case 'onResume':
TTVideoEngineDownloadTask task = TTVideoEngineDownloadTask.fromJson(params['task']);
int fileOffset = params['fileOffset'];
int expectedTotalBytes = params['expectedTotalBytes'];
onResume?.call(task, fileOffset, expectedTotalBytes);
break;
case 'onStateChanged':
TTVideoEngineDownloadTask task = TTVideoEngineDownloadTask.fromJson(params['task']);
TTVideoEngineDownloadState state = TTVideoEngineDownloadState.values[params['state']];
onStateChanged?.call(task, state);
break;
default:
TTFLogger.e('TTVideoEnginDownload', 'notImplemented:$eventName');
}
},
// onError: (error) {
// TTFLogger.e('TTVideoEnginDownload', 'event error:$error');
// },
// onDone: () {
// TTFLogger.e('TTVideoEnginDownload', 'event done');
// },
// cancelOnError: true,
);
}