void initState()

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);
  }