setOnStateChanged method
播放器状态改变回调
Implementation
void setOnStateChanged(OnStateChanged? stateChanged) {
this.onStateChanged = stateChanged;
FlutterAliPlayerFactory.methodChannel.invokeMethod(
'setOnStateChanged', wrapWithPlayerId(arg: (null != stateChanged)));
if (null != stateChanged) {
BasicMessageChannel<String> _basicMessageChannel =
BasicMessageChannel<String>(
"aliPlayer_onStateChanged${playerId}",
StringCodec(),
);
// 注册调用 Flutter 端的 callback, 并发送至 Native 端
_basicMessageChannel.setMessageHandler((String? msg) async {
Map<String, dynamic> map = jsonDecode(msg!);
int newState = map['newState'];
String playerId = map['playerId'];
String method = map['method'];
if (null != onStateChanged && method == "onStateChanged") {
this.onStateChanged!(newState, playerId);
}
return '';
});
}
}