提问者:小点点

Flutter WebView退出全屏YouTube视频问题:黑屏,稍后观看和共享按钮


我有一个飘飘的应用程序,可以在网景中播放YouTube视频。它工作正常,除了一种情况:如果你全屏打开它,并且pres=s嵌入了YouTube播放器中的“退出全屏”按钮:从全屏退出后,我仍然听到声音,但我看到一个黑屏与按钮共享和稍后观看。如果我通过按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;
            });
          },
    );
  }
}

共1个答案

匿名用户

如果你输入你的代码,也许我可以帮你更多。也许原因是当你播放视频时,它还没有准备好。您可以使用_controller.value进行检查。初始化,当视频未准备好返回Container()code片段时:

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

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

Android:硬件加速器=“假”

android:大堆="true"