gpt4 book ai didi

javascript - Firefox:将 blob url 动态加载到视频标签会导致 MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED (javascript)

转载 作者:行者123 更新时间:2023-11-30 12:55:01 27 4
gpt4 key购买 nike

我正在尝试动态创建一个以 blob_url 作为源加载的 html5 视频标签。

我正在监听 2 个事件:loadedmetadataerror

在 Chrome 浏览器中,我得到了 loadedmetadata 事件,就像我想要的那样,但是在 Firefox 中,我得到了 error 事件,错误代码为 4 (MEDIA_ERR_SRC_NOT_SUPPORTED)。

代码:

function add_video(blob_url, id) {
html = '<video id="' + id + '" src="' + blob_url + '"></video>';
$('body').append(html);
var vid = document.getElementById(id);
vid.addEventListener('loadedmetadata', function(){ alert('loaded!'); });
vid.addEventListener('error', function(){ alert('error! ' + this.error.code); });
}

谁能告诉我为什么 firefox 会为此抛出错误?

最佳答案

以下代码片段对我有用...由于您自己没有提供完整的代码片段,我自己创建了一个。你只需要有一个 cas.webm自己。

<!DOCTYPE html>
<script>
addEventListener("load", function() {
var r = new XMLHttpRequest();
r.onload = function() {
var vid = document.createElement("video");
vid.addEventListener('loadedmetadata', function(){ alert('loaded!'); });
vid.addEventListener('error', function(){ alert('error! ' + this.error.code); });
vid.setAttribute("autoplay", "autoplay");
vid.setAttribute("loop", "loop");
vid.setAttribute("src", URL.createObjectURL(r.response));
document.body.appendChild(vid);
};
r.open("GET", "cas.webm");
r.responseType = "blob";
r.send();
}, false);
</script>

所以,自 blob URI 有效,这就剩下媒体格式了。请注意,Firefox 不一定支持 Chrome 支持的所有格式,特别是 H.264/MP4、AAC、MP3 和 VP9 尚未在所有平台上可用或根本不可用。参见 Supported media formats .查看 Web 控制台是否有错误,例如:

HTTP "Content-Type" of "video/mp4" is not supported. Load of media resource blob:d83a2aa5-0c28-f044-b3ef-dcabbf59c6ed failed. @ https://example.org/cas.html

此外,类型嗅探器可能会出错。你可以使用 <source type="..." src="..."> 标签来解决这个问题。

确保 blob 包含您希望它包含的数据。至少使用 Web 控制台或 WebView 来验证您可能用于构建 blob 的任何请求是否确实成功(或使用完整的网络嗅探器)。

如果没有可重现的独立示例,我无法真正诊断出您遇到的实际问题,但这些指示可能足以让您自己诊断问题。

关于javascript - Firefox:将 blob url 动态加载到视频标签会导致 MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19516502/

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