gpt4 book ai didi

javascript - Angular base64 视频插值失败($sce)

转载 作者:行者123 更新时间:2023-11-30 00:27:51 25 4
gpt4 key购买 nike

我正在尝试使用 Angular 呈现一个 base64 视频,只是由于 $sce 提供者不信任源(这是一个简单的数据 url)而无法插入它。

Error: [$interpolate:interr] Can't interpolate: {{video}}
Error: [$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy.
URL: data:video/mp4;base64,AAAAGGZ0eXBtcDQyAAAAAGlzb21tcDQyAAAvzm1vb3YAAABsbXZoZ…+VXw5feXy+X3p3xV429Xirw87eVd0svWnUu3by8hW9zS6twXS5ZcbmgmlcKy+3CsI4raC9YA==

到目前为止我已经尝试过:

$scope.video = $sce.trustAsResourceUrl('base64-string-here');

没用,我相信该方法仍然需要有效链接而不是数据 url,因此它不是正确的解决方案。

第二次尝试:

angular.module('myAppWithSceDisabledmyApp', []).config(function($sceProvider) {
// Completely disable SCE.
// Do not use in new projects.
$sceProvider.enabled(false);
});

这当然有效,但随后它会禁用整个提供程序,从而使应用程序容易受到攻击。

我还没有找到一个有效的解决方案,我可以毫不费力地显示 base64 图像,所以我确信一定有办法解决它,或者至少有一个解决方法。

非常感谢您的帮助!

最佳答案

如果有人正在寻找解决方案,这是我在发布问题 3 个月后的输入:

视频的 Base64 不是一个好主意,即使你解决了插值问题,应用程序在播放时也会在 Android 上崩溃。

我花了很多时间在上面,所以关于“如何在应用程序上播放非流媒体视频”的解决方案是:

  1. 将文件下载到本地手机并从那里播放(如果您使用 Angular 则寻找 ngCordova 文件传输插件)

  2. 对于 Android:HTML5 视频标签将不起作用。原因介于权限问题和 Android 不允许在 HTML 上播放本地视频之间。使用 android 视频播放器,例如 this media player

对于 iOS:HTML5 video 标签非常适合播放本地视频。它将它转换为原生的。

希望有一天它能对某人有所帮助。

关于javascript - Angular base64 视频插值失败($sce),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30766884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com