play method
Future<void>
play({
- required String source,
- required String playMethod,
- required String playArg,
- List<
FetchResourceModel> fetchResources = const [],
Implementation
Future<void> play(
{required String source, required String playMethod, required String playArg, List<
FetchResourceModel> fetchResources = const []}) async {
try {
playCompleter = Completer<void>();
/// 先设置融合动画参数再播放,不然会出现融合动画不起作用的问题
await setFetchResources(fetchResources);
await _methodChannel.invokeMethod(playMethod, {playArg: source});
return playCompleter!.future.timeout(const Duration(seconds: 20),
onTimeout: () {
if (playCompleter?.isCompleted == true) return;
playCompleter?.completeError(
TimeoutException("wait play complete timeout"));
});
} catch (e, s) {
playCompleter?.completeError(e, s);
}
}