首页 > 解决方案 > Flutter WebView 退出全屏 YouTube 视频问题:黑屏,稍后观看和分享按钮

问题描述

我有一个 Flutter 应用程序,可以在 WebView 中显示 YouTube 视频。它工作正常,除了在一种情况下:如果你全屏打开它并且在 YouTube 播放器中按下 = s 嵌入“从全屏退出”按钮:从全屏退出后我仍然听到声音,但我看到一个带有按钮共享的黑屏和稍后观看。如果我通过按 android 后退按钮退出全屏模式,它可以正常工作。何来修?

  Widget build(BuildContext context) {

    return  Container(
            child: MyWebView(
              initUrl:
                  'https://www.youtube.com/embed/${id}?autoplay=1&rel=0&showinfo=0',
            ),
          )
  }


import 'package:flutter_inappwebview/flutter_inappwebview.dart';

class MyWebView extends StatefulWidget {
  final String initUrl;

  MyWebView({
    this.initUrl,
  });

  @override
  MyWebViewState createState() => MyWebViewState();
}


class MyWebViewState extends State<MyWebView> {
  InAppWebViewController webView;
  String url;
  bool webLoadError = false;

  @override
  void initState() {
    url = widget.initUrl;
    super.initState();
  }


  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        InAppWebView(
          initialUrl: url,
          initialHeaders: widget.headers,
          initialOptions: InAppWebViewGroupOptions(
            crossPlatform: InAppWebViewOptions(
              debuggingEnabled: true,
              useShouldOverrideUrlLoading: true,
              clearCache: true,
              mediaPlaybackRequiresUserGesture: false,
            ),
          ),
          onLoadStart: (controller, string) {
            setState(() {
              webView = controller;
              webLoadError = false;
            });
          },
    );
  }
}

标签: androidflutterwebviewyoutube

解决方案


如果您输入代码,也许我可以为您提供更多帮助。也许原因是当你展示它时视频还没有准备好。_controller.value.initialized当视频未准备好返回Container()代码段时,您可以使用 进行检查:

return Center(
  child: _controller.value.initialized
      ? AspectRatio(
          aspectRatio: _controller.value.aspectRatio,
          child: VideoPlayer(_controller),
        )
      : Container(),
);

或者,如果您使用 webview 从应用程序标记中删除这些行。

android:hardwareAccelerated="false"

android:largeHeap="true"


推荐阅读