【问题标题】:Video inside Html content does not appear on flutterHtml 内容中的视频不会出现在颤动上
【发布时间】:2019-03-25 16:36:26
【问题描述】:

我有包含文本、图像和视频的 HTML 内容。文本和图像工作正常,没有任何问题,但视频永远不会出现。我试过很多关于HTML的插件,例如:flutter_html和flutter_html_view,都没有显示视频。

我要显示的带有视频的 HTML 内容示例:

<p>Hello world 25-3-2019 :</p>
<p>&nbsp;</p>
<p>
    <iframe 
        src="https://www.youtube.com/embed/W8TrvLoPrfQ" 
        width="400" 
        height="300" 
        frameborder="0"></iframe>
</p>

有人知道在小部件中显示此内容吗?

【问题讨论】:

  • 如果您复制并粘贴此代码,例如 jsfiddle.net,它将按预期工作并显示视频。您必须拥有更多阻止视频显示的 CSS/JS。
  • 对不起,我忘了提到我在颤振上显示它????...我将编辑标题
  • 您使用的是什么设备?你试过不同的设备吗?
  • @Tom Alabaster 是的,我尝试过不同的真实设备和不同的安卓模拟器
  • 如何使用 string.indexOf 提取视频的 src,并使用 video_player 插件播放它,我的一个应用程序正在使用这种技术在我的应用程序中播放视频,但 src 来自其他网站。

标签: html dart flutter


【解决方案1】:

我不确定这是否适合您,但您可以尝试webview_flutter 包。一个警告:它目前在开发者预览中,可以在here.找到。

你可以给内联小部件一些html字符串来渲染,例如:

WebView(
  initialUrl: new Uri.dataFromString("<p>Hello world 25-3-2019 :</p>
    <p>&nbsp;</p
    <p>
    <iframe 
      src="https://www.youtube.com/embed/W8TrvLoPrfQ" 
      width="400" 
      height="300" 
      frameborder="0"></iframe>
    </p>", mimeType: "text/html", encoding: utf8).toString(),
  javascriptMode: JavascriptMode.unrestricted,
  onWebViewCreated: (WebViewController webViewController) {
    _controller.complete(webViewController);
  },
),

此代码示例确实需要您将控制器传递给它:final Completer&lt;WebViewController&gt; _controller = Completer&lt;WebViewController&gt;();,并且在您即将处置屏幕时处置所述控制器也是安全的做法:

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

如果这有帮助,请告诉我。

【讨论】:

  • 首先感谢您的帮助,但我之前已经达到了这一点,但它是作为 webview 工作的,而不是普通的小部件。除了我无法控制文本的大小或视频布局...基本上我将内容显示为 Web 视图,而没有更改或增强其样式的选项...有没有办法控制或渲染 HTML 中的 iframe?
  • _controller 不会在 @override void dispose() { super.dispose(); 上重新识别 dispoase _controller.dispose(); }
猜你喜欢
  • 1970-01-01
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 2017-08-27
  • 2023-03-26
相关资源
最近更新 更多