You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中youtube_player_iframe在Web端(含移动端)无法显示问题求助

Flutter Web端内嵌YouTube视频空白问题排查

我在Flutter应用中尝试用youtube_player_iframe内嵌YouTube视频,以下场景视频能正常显示:

  • 运行Android APK安装包
  • 在Android Studio模拟器中启动应用

但在以下场景中页面显示空白:

  • iOS移动端打开web.app
  • Android移动端打开web.app
  • PC端Chrome浏览器打开web.app

我也曾试过youtube_player_flutter,但在上述Web场景(iOS/Android移动端、PC Chrome)中,视频无法启动且陷入无限加载循环。

应用代码

class YoutubeAppDemo extends StatefulWidget {
  @override
  _YoutubeAppDemoState createState() => _YoutubeAppDemoState();
}

class _YoutubeAppDemoState extends State<YoutubeAppDemo> {
  late YoutubePlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller = YoutubePlayerController(
      params: const YoutubePlayerParams(
        showControls: true,
        mute: true,
        showFullscreenButton: false,
        loop: false,
      ),
    );

    _controller.loadVideoById(
      videoId: 'egMWlD3fLJ8',
      startSeconds: 0,
    );
  }

  @override
  Widget build(BuildContext context) {
    /*return YoutubePlayerScaffold(
      controller: _controller,
      builder: (context, player) {*/
        return Scaffold(
          appBar: AppBar(
            title: const Text('Youtube Player IFrame Demo'),
          ),
          body: ListView(
            children: [
            YoutubePlayer(controller: _controller),
            const Controls(),
            ],
          )
        );
     // },
    //);
  }

  @override
  void dispose() {
    _controller.close();
    super.dispose();
  }
}

///
class Controls extends StatelessWidget {
  ///
  const Controls();

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(16),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Text("MetaDataSection"),
          _space,
          Text("SourceInputSection"),
          _space,
          Text("PlayPauseButtonBar"),
          _space,
          const Text("VideoPositionSeeker"),
          _space,
          Text("PlayerStateSection"),
        ],
      ),
    );
  }

  Widget get _space => const SizedBox(height: 10);
}

显示对比截图

  • 模拟器/APK端正常显示:
    模拟器/APK端显示截图
  • Web端空白页:
    Web端(含移动/PC)空白页截图

内容的提问来源于stack exchange,提问作者Fabrizio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:15:07