Afficher l'erreur ci-dessous dans Safari.
Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided.
Mon code est:
function createObjectURL(object) {
return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}
Ceci est mon code pour l'image:
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);
} }
} }
J'ai rencontré la même erreur lorsque je suis passé à createObjectURL
raw data:
window.URL.createObjectURL(data)
Il doit s'agir d'un objet Blob
, File
ou MediaSource
et non de données. Cela a fonctionné pour moi:
var binaryData = [];
binaryData.Push(data);
window.URL.createObjectURL(new Blob(binaryData, {type: "application/Zip"}))
Consultez également le MDN pour plus d’informations: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
Cette erreur est due au fait que la fonction createObjectURL
est obsolète pour Google Chrome.
J'ai changé ceci:
video.src=vendorUrl.createObjectURL(stream);
video.play();
pour ça:
video.srcObject=stream;
video.play();
Cela a fonctionné pour moi.
J'ai eu la même erreur pour le MediaStream. La solution définit un flux sur srcObject.
De la docs :
Important: Si vous avez toujours du code qui repose sur createObjectURL () à attacher des flux aux éléments de média, vous devez mettre à jour votre code pour Il suffit de définir srcObject sur MediaStream directement.
Mon code était cassé parce que j'utilisais des logiciels obsolètes. C'était autrefois:
video.src = window.URL.createObjectURL(localMediaStream);
video.play();
Ensuite, j'ai remplacé cela par ceci:
video.srcObject = localMediaStream;
video.play();
Cela a fonctionné à merveille.
Références:
Le problème est que les clés fournies dans la boucle ne font pas référence à l'index du fichier.
for (var i in this.files) {
console.log(i);
}
La sortie du code ci-dessus est:
0
length
item
Mais ce à quoi on s'attendait était:
0
1
2
etc...
Ensuite, l'erreur se produit lorsque le navigateur tente de s'exécuter, par exemple:
window.URL.createObjectURL(this.files["length"])
Je suggère une implémentation basée sur le code suivant:
var files = this.files;
for (var i = 0; i < files.length; i++) {
var file = files[i],
src = (window.URL || window.webkitURL).createObjectURL(file);
...
}
J'espère que cela peut aider quelqu'un.
Salutations!
Vidéo avec repli:
try {
video.srcObject = mediaSource;
} catch (error) {
video.src = URL.createObjectURL(mediaSource);
}
video.play();
De: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject