Har*_*kaa 103 javascript createobject
在Safari中显示以下错误.
function createObjectURL(object) {
return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}
Run Code Online (Sandbox Code Playgroud)
我的代码是:
function myUploadOnChangeFunction() {
if (this.files.length) {
for (var i in this.files) {
if (this.files.hasOwnProperty(i)) {
var src = createObjectURL(this.files[i]);
var image = new Image();
image.src = src;
imagSRC = src;
$('#img').attr('src', src);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的图片代码:
function createObjectURL(object) {
return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}
Run Code Online (Sandbox Code Playgroud)
mim*_*imo 108
当我传递给createObjectURL()原始数据时,我遇到了同样的错误:
const mediaStream = new MediaStream();
const video = document.getElementById('video-player');
video.srcObject = mediaStream;
Run Code Online (Sandbox Code Playgroud)
它必须是MediaStream,srcObject或HTMLMediaElement对象,而不是数据本身.这对我有用:
window.URL.createObjectURL(data)
Run Code Online (Sandbox Code Playgroud)
另请查看MDN以获取更多信息:https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
小智 108
导致此错误的原因createObjectURL是Google Chrome不推荐使用此功能
我改变了这个:
video.src=vendorUrl.createObjectURL(stream);
video.play();
Run Code Online (Sandbox Code Playgroud)
对此:
video.srcObject=stream;
video.play();
Run Code Online (Sandbox Code Playgroud)
这对我有用.
Dan*_*lem 22
我的代码被破坏,因为我使用的是过时的技术。过去是这样的:
video.src = window.URL.createObjectURL(localMediaStream);
video.play();
Run Code Online (Sandbox Code Playgroud)
然后我将其替换为:
video.srcObject = localMediaStream;
video.play();
Run Code Online (Sandbox Code Playgroud)
效果很好。
编辑:最近localMediaStream已被弃用并替换为MediaStream。最新的代码如下所示:
video.srcObject = MediaStream;
Run Code Online (Sandbox Code Playgroud)
参考文献:
后退视频:
try {
video.srcObject = mediaSource;
} catch (error) {
video.src = URL.createObjectURL(mediaSource);
}
video.play();
Run Code Online (Sandbox Code Playgroud)
来自:https : //developer.mozilla.org/zh-CN/docs/Web/API/HTMLMediaElement/srcObject
小智 5
问题是循环中提供的键不引用文件的索引。
for (var i in this.files) {
console.log(i);
}
Run Code Online (Sandbox Code Playgroud)
上述代码的输出是:
0
length
item
Run Code Online (Sandbox Code Playgroud)
但预期的是:
0
1
2
etc...
Run Code Online (Sandbox Code Playgroud)
那么当浏览器尝试执行时就会出现错误,例如:
window.URL.createObjectURL(this.files["length"])
Run Code Online (Sandbox Code Playgroud)
我建议基于以下代码实现:
var files = this.files;
for (var i = 0; i < files.length; i++) {
var file = files[i],
src = (window.URL || window.webkitURL).createObjectURL(file);
...
}
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助别人。
问候!
| 归档时间: |
|
| 查看次数: |
133927 次 |
| 最近记录: |