Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是<;视频src=blob:url>;?_Url_Youtube - Fatal编程技术网

什么是<;视频src=blob:url>;?

什么是<;视频src=blob:url>;?,url,youtube,Url,Youtube,有人能解释一下这个视频标签的URL中的blob:指示了什么吗 这是一个youtube视频,在不使用浏览器插件的情况下播放DASH内容 blob url由createObjectURL生成。例如: var video = document.querySelector('video'); var assetURL = 'frag_bunny.mp4'; // Need to be specific for Blink regarding codecs // ./mp4info frag_bunny

有人能解释一下这个视频标签的URL中的
blob:
指示了什么吗


这是一个youtube视频,在不使用浏览器插件的情况下播放DASH内容

blob url由
createObjectURL
生成。例如:

var video = document.querySelector('video');

var assetURL = 'frag_bunny.mp4';
// Need to be specific for Blink regarding codecs
// ./mp4info frag_bunny.mp4 | grep Codec
var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';

if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {
  var mediaSource = new MediaSource;
  //console.log(mediaSource.readyState); // closed
  video.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener('sourceopen', sourceOpen);
} else {
  console.error('Unsupported MIME type or codec: ', mimeCodec);
}

它表示url是使用
url
对象
createObjectURL
静态方法创建的。
createObjectURL
采用单个参数,该参数应为
Blob
文件
MediaSource
对象之一,它返回一个url,该url表示参数给定的对象。(见附件)

您可以尝试
console.log(URL.createObjectURL(newmediasource())以演示它创建“blob:https://...(网址)……”。但是,您通常会将
video
元素的
src
属性设置为引用创建的对象url,该url本身就是对
MediaSource
对象的引用。然后,您可以使用
XMLHttpRequest
获取视频资源流,并将响应作为缓冲区附加到
MediaSource
对象,您可以从上的中了解到该对象的确切细节。这允许对流进行更大的控制,例如。,您可以使用允许播放速度和视频质量调整等功能


但这是我读到的老方法,支持最终将从较新的浏览器中删除(请参阅“”)。新方法是只设置
video
元素的
srcObject
属性,直接引用
MediaSource
对象,而不必使用
url.createObjectURL
创建对象url的中间步骤(请参阅)一个blob是一个更高级别的对象,它表示不可变的原始二进制数据


我不理解上面的代码,根本没有使用
assetur
blob URL如何转换为实际的视频URL?这里似乎缺少一个步骤
assetURL
只定义一次,从未与
mediaSource
一起使用。我所能看到的只是一段空白的视频。那么
sourceOpen()
的定义是什么呢?我认为我们不应该理解代码:YouTube显然想让在浏览器之外访问视频变得尽可能困难。对恰好是URL的字符串参数调用URL.createObjectURL只需在其前面加上“blob:”;我认为我们不应该知道他们为什么要这么做。@BradenBest完整的例子可以在MDN上找到: