我想下载一个视频,其网址不是简单的mp4文件,但其网址是blob类型,例如.
<video id="playerVideo" width="450px" autoplay="autoplay" height="338px"
style="height:100%;width:100%;" class="mejs-rai-e"
src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>
Run Code Online (Sandbox Code Playgroud)
是否有任何Chrome扩展程序或软件可用于下载播放视频.
我的页面生成如下URL:"blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f"如何将其转换为普通地址?
我使用它作为一个<img>的src属性.
我有一个文件输入: (jsbin)
<input type="file" accept="image/*" id="input" multiple onchange='handleFiles(this)' />
Run Code Online (Sandbox Code Playgroud)
选择文件时,显示所选图像的小图像:
我可以用两种方式做到:
使用FileReader:
function handleFiles(t) //t=this
{
var fileList = t.files;
for (var i = 0; i < fileList.length; i++)
{
var file = fileList[i];
var img = document.createElement("img");
img.style... = ...
document.getElementById('body').appendChild(img);
var reader = new FileReader();
reader.onload = (function (aImg)
{
return function (e)
{
aImg.src = e.target.result;
};
})(img);
reader.readAsDataURL(file);
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
使用ObjectURL/BLOB:
function handleFiles(t)
{
var fileList = t.files;
for (var …Run Code Online (Sandbox Code Playgroud) 有以下代码:
console.log(blob);
var reader = new window.FileReader();
reader.onloadend = function() {
console.log(reader.result);
};
reader.readAsDataURL(blob);
Run Code Online (Sandbox Code Playgroud)
blob 是“ blob:http://localhost:3000/e3c23a22-75b1-4b83-b39a-75104d1909b9”,并且出现以下错误:
TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'.
Run Code Online (Sandbox Code Playgroud)
如何修复此错误并将 Blob 转换为 Base64 编码图像?提前致谢!
我有一个服务器在浏览器上创建一个对象blob,我想在Android应用程序的WebView中下载它.我尝试将请求重定向到浏览器实例以及使用下载管理器执行此操作,但它们似乎都不起作用(即使我在Chrome中打开相同的页面,下载操作也在那里工作).
我尝试了以下代码,它抛出错误:
Android.content.ActivityNotFoundException:找不到处理Intent的活动{act = android.intent.action.VIEW dat = blob:https%3A // 111.111.111.111%3A8080/40b63131-63b1-4fa4-9451-c6297bbd111a"
编辑
Android.content.ActivityNotFoundException:找不到处理Intent的Activity {act = android.intent.action.VIEW dat = blob:http://digitalinsensu.com/0f0d6127-a0f1-44c3-af85-72f648258d6d
码:
mWebView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,String contentDisposition, String mimetype,long contentLength) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
Run Code Online (Sandbox Code Playgroud)
这会抛出java.lang.IllegalArgumentException:只能下载HTTP/HTTPS URIs错误:
mWebView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,String contentDisposition, String mimetype,long contentLength) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "download");
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
}
});
Run Code Online (Sandbox Code Playgroud)
我该如何下载blob?任何帮助,将不胜感激.
即使将HTML5视频播放器设置为in 标签,但HTML5视频播放器仅在iOS中 显示控件,但所有其他浏览器都可以正常运行,并且不显示控件。12.x.xfalsevideo
场景是,每当页面加载时,我们都会在横幅上自动播放视频,但是如果打开了节电功能,则它将不会自动播放视频,并显示带有初始缩略图的播放按钮(仅在iOS 12.xx中),而在其他浏览器中,则显示视频的初始缩略图,没有任何播放按钮。
我的代码如下所示:
<video id="header-video" autoplay="true" controls="false" playsinline="true" muted="true" loop="true">
// sources here
</video>
Run Code Online (Sandbox Code Playgroud)
我正在寻找隐藏此播放图标的解决方案(如上图所示),但是如果不可能,那么有什么解决方案可以使我知道省电模式已打开并隐藏视频(因为我有一个背景向后兼容)。
我有这样的对象:
{
"name": "filename",
"size": 3523507,
"type": "image/png",
"extension": "png",
"url": "blob:http://localhost:8081/082e9c22-9869-4289-a9c8-e36b0640e61c"
}
Run Code Online (Sandbox Code Playgroud)
我需要将其上传到后端。我尝试一下:
const session = axios.create({
baseURL: debug ? 'http://localhost:8000': '',
xsrfCookieName: CSRF_COOKIE_NAME,
xsrfHeaderName: CSRF_HEADER_NAME,
});
let formData = new FormData();
formData.append('file', file, 'file.name');
return session.post(`/chats/files/`,{...formData},), {
headers: {
"Content-Type": `multipart/form-data`,
}
}
Run Code Online (Sandbox Code Playgroud)
但是将Blob添加到formData中不起作用
UPD 我从 vue-advanced-chat 组件中的 send-message 方法获取一个包含文件的对象,格式如下:
{
"name": "filename",
"size": 3523507,
"type": "image/png",
"extension": "png",
"localUrl": "blob:http://localhost:8081/aae047a9-5f9e-481f-b0cc-17febe954c31",
"blob": {}
}
Run Code Online (Sandbox Code Playgroud)
然后我将其格式化为在上传到服务器之前显示在界面中
UPD2
我将 blob 转换为文件
send_file(roomId, messageId, blob_file, isAudio, duration) {
let formData = …Run Code Online (Sandbox Code Playgroud) 我无法在 html5 版 youtube 的源代码中找到标签。
问题 1)。关于如何在没有视频元素的情况下播放 HTML5 视频的任何想法?
一种选择是它正在从 JS 添加视频元素,但即使在 web-inspector 的 DOM 中我也无法找到视频元素。
问题 2)。如何在网络检查器或萤火虫中找到视频元素?
PS:我是网络开发的新手。
我正在使用javascript在浏览器中创建钢琴.为了让我同时多次播放相同的键,而不是只播放Audio对象,我克隆它并播放克隆,否则我必须等待音频完成或重新启动它,我不知道我想要.
我做过这样的事情:
var audioSrc = new Audio('path/');
window.onkeypress = function(event) {
var currentAudioSrc = audioSrc.cloneNode();
currentAudioSrc.play();
}
Run Code Online (Sandbox Code Playgroud)
问题是,我正在检查chrome的检查器,我注意到每次克隆对象时,浏览器都会再次下载它

我检查了一些想要实现类似功能的人,并注意到他们中的大多数都遇到了同样的问题,他们重新下载了文件.我发现可以同时多次播放相同音频源的唯一示例是SoundJs http://www.createjs.com/SoundJS
我尝试检查源可能但无法弄清楚它是如何完成的.任何的想法?
我们的项目中有一个模块,其中可以选择上传 mp4 视频,我们使用 html5 视频标签播放器来播放视频。
我们面临的问题是视频的隐私。当时,用户可以很容易地通过右键单击“另存为视频”或通过检查元素从视频标签的 src 中获取 url 来下载我们的文件。为此,我进行了很多研究,并通过 YouTube 视频了解了 blob url,但无论如何都无法访问。我尝试研究 blob-url,为我的视频 url 创建了一个,但它们仍然可以访问并且可以轻松下载。就像 youtube blob-url 一样,它不起作用。我还研究了这个问题的第一个答案,通过它我了解了 YouTube 缓冲视频的机制以及 YouTube 的检查元素中显示的 blob url 如何是一个欺骗。
最重要的是,我想知道如何欺骗我们的网站网址,以便没有人可以通过检查元素下载它。我们是否可以这样做以及如何这样做?任何与此相关的链接请与我分享。我已经尝试学习很多,但仍然缺少一些东西。
YouTube 实际上遵循什么机制来创建 blob url 并保存其视频?
如果您转到https://developer.mozilla.org/en-US/docs/Web/API/Blob#creating_a_blob中的“创建 blob”示例,您最终会得到一个以“blob:https:”开头的 URL //”,但浏览器将站点标记为不安全:

需要什么条件才能将其标记为安全?
为了给出我正在做的事情的背景:我有一个角度应用程序,可以在新选项卡中从 Base64 数据打开 PDF,并且可以同时打开任意数量的 PDF。