in lib/aliplayer_widget_controller.dart [477:518]
void _configurePlayerSource(AliPlayerWidgetData data) {
if (data.videoSource == null || !data.videoSource!.validate()) {
throw ArgumentError("Invalid video source");
}
final videoSource = data.videoSource;
// 确保视频源不为空
if (videoSource == null) {
return;
}
// 根据视频源类型设置播放器
switch (videoSource.sourceType) {
case SourceType.url:
// 对于URL类型,直接使用videoUrl设置
final urlSource = videoSource as UrlVideoSource;
_aliPlayer.setUrl(urlSource.url);
break;
case SourceType.vidSts:
// 对于VidSts类型,提取所需参数
final stsSource = videoSource as VidStsVideoSource;
_aliPlayer.setVidSts(
vid: stsSource.vid,
region: stsSource.region,
accessKeyId: stsSource.accessKeyId,
accessKeySecret: stsSource.accessKeySecret,
securityToken: stsSource.securityToken,
);
break;
case SourceType.vidAuth:
// 对于VidAuth类型,提取所需参数
final authSource = videoSource as VidAuthVideoSource;
_aliPlayer.setVidAuth(
vid: authSource.vid,
playAuth: authSource.playAuth,
);
break;
}
}