onPlayerEvent method
event type
event 类型 see:https://cloud.tencent.com/document/product/454/7886#.E6.92.AD.E6.94.BE.E4.BA.8B.E4.BB.B6
Implementation
@override
void onPlayerEvent(Map<dynamic, dynamic> event) {
final Map<dynamic, dynamic> map = event;
switch (map["event"]) {
case TXVodPlayEvent.PLAY_EVT_RTMP_STREAM_BEGIN:
break;
case TXVodPlayEvent.PLAY_EVT_RCV_FIRST_I_FRAME:
if (_isNeedDisposed) return;
if (_state == TXPlayerState.buffering) _changeState(TXPlayerState.playing);
break;
case TXVodPlayEvent.PLAY_EVT_PLAY_BEGIN:
if (_isNeedDisposed) return;
if (_state == TXPlayerState.buffering) _changeState(TXPlayerState.playing);
break;
case TXVodPlayEvent.PLAY_EVT_PLAY_PROGRESS: //EVT_PLAY_PROGRESS
break;
case TXVodPlayEvent.PLAY_EVT_PLAY_END:
_changeState(TXPlayerState.stopped);
break;
case TXVodPlayEvent.PLAY_EVT_PLAY_LOADING:
_changeState(TXPlayerState.buffering);
break;
case TXVodPlayEvent.PLAY_EVT_CHANGE_RESOLUTION: //下行视频分辨率改变
if (defaultTargetPlatform == TargetPlatform.android) {
int? videoWidth = event[TXVodPlayEvent.EVT_VIDEO_WIDTH];
int? videoHeight = event[TXVodPlayEvent.EVT_VIDEO_HEIGHT];
videoWidth ??= event[TXVodPlayEvent.EVT_PARAM1];
videoHeight ??= event[TXVodPlayEvent.EVT_PARAM2];
if ((videoWidth != null && videoWidth > 0) && (videoHeight != null && videoHeight > 0)) {
resizeVideoWidth = videoWidth.toDouble();
resizeVideoHeight = videoHeight.toDouble();
videoLeft = event["videoLeft"] ?? 0;
videoTop = event["videoTop"] ?? 0;
videoRight = event["videoRight"] ?? 0;
videoBottom = event["videoBottom"] ?? 0;
}
}
break;
// Live broadcast, stream switching succeeded (stream switching can play videos of different sizes):
case TXVodPlayEvent.PLAY_EVT_STREAM_SWITCH_SUCC:
break;
case TXVodPlayEvent.PLAY_ERR_NET_DISCONNECT: //disconnect
_changeState(TXPlayerState.failed);
break;
case TXVodPlayEvent.PLAY_WARNING_RECONNECT: //reconnect
break;
case TXVodPlayEvent.PLAY_WARNING_DNS_FAIL: //dnsFail
break;
case TXVodPlayEvent.PLAY_WARNING_SEVER_CONN_FAIL: //severConnFail
break;
case TXVodPlayEvent.PLAY_WARNING_SHAKE_FAIL: //shakeFail
break;
case TXVodPlayEvent.PLAY_ERR_STREAM_SWITCH_FAIL: //failed
_changeState(TXPlayerState.failed);
break;
default:
break;
}
_eventStreamController.add(map);
}