in example/lib/pages/live/live_page.dart [370:435]
void initState() {
super.initState();
// 初始化播放器组件控制器
_controller = AliPlayerWidgetController(context);
// 获取保存的链接
final linkItemName = widget.isPortrait
? LinkConstants.livePortrait
: LinkConstants.liveLandscape;
final savedLink = SPManager.instance.getString(linkItemName);
// 如果 URL 为空,提示用户并跳转到 LinkPage
if (savedLink == null || savedLink.isEmpty) {
final pageRoute = widget.isPortrait
? PageRoutes.livePortrait
: PageRoutes.liveLandscape;
final linkItem = LinkItem(name: linkItemName, route: pageRoute);
// 显示提示消息
WidgetsBinding.instance.addPostFrameCallback((_) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: const Text('请先设置直播链接'),
backgroundColor: Colors.red,
action: SnackBarAction(
label: '去设置',
onPressed: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => LinkPage(
linkItems: [
linkItem,
],
),
),
);
},
),
),
);
});
return;
}
// 动态设置屏幕方向
if (widget.isPortrait) {
// 锁定竖屏方向
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
]);
}
// 添加观察者
WidgetsBinding.instance.addObserver(this);
// 设置播放器视频源
final videoSource = VideoSourceFactory.createUrlSource(savedLink);
// 设置播放器组件数据
final data = AliPlayerWidgetData(
sceneType: SceneType.live,
videoSource: videoSource,
);
_controller.configure(data);
}