Empfohlene Methode zur Fehlerbehandlung für canvas.toDataURL image/png

Empfohlene Methode zur Fehlerbehandlung für canvas.toDataURL image/png

Problemhintergrund:

Es ist erforderlich, einen Screenshot des abgespielten Videos zu erstellen. Das Video wird mithilfe des Video-Tags abgespielt und dann wird ein Echtzeit-Frame-Bild aufgenommen, wenn auf den Videowiedergabebereich geklickt wird.

Der Code ist ganz einfach und lautet wie folgt:

JavaScript CodeInhalt in die Zwischenablage kopieren
  1. var video = document.getElementById( 'video' );
  2.   
  3. var Leinwand = document.getElementById( 'Leinwand' );
  4.   
  5. var ctx = canvas.getContext( "2d" );
  6.   
  7. var img = document.getElementById( 'img' );
  8.   
  9. Funktion Schnappschuss() {
  10. ctx.drawImage(video,0,0);
  11. img.src = canvas.toDataURL( 'bild/png' );
  12. }
  13.   
  14. video.addEventListener( 'Klick' , Schnappschuss, falsch );

Fragen:

Nicht abgefangener Sicherheitsfehler: „toDataURL“ konnte für „HTMLCanvasElement“ nicht ausgeführt werden: Beschädigte Canvases können nicht exportiert werden.

Nach der Überprüfung und Analyse stellten wir fest, dass dies tatsächlich daran lag, dass sich die Domäne, in der sich die Videodatei befand, von der Domäne unterschied, in der sich das Bild und die Seite befanden, was zu einem domänenübergreifenden Übertragungsproblem führte.

Lösung:

Platzieren Sie die Videodatei unter der Domäne, in der sich die Seite befindet.

Ursprüngliche Adresse: http://blog.csdn.net/luochao_tj/article/details/44942125

<<:  Acht Hook-Funktionen in der Vue-Lebenszykluskamera

>>:  MySQL-Platzhalter (erweiterte SQL-Filterung)

Artikel empfehlen

Windows 10 ist zu schwierig zu verwenden. Wie passen Sie Ihr Ubuntu an?

Autor | Herausgeber Awen | Produziert von Tu Min ...

Häufige Fehler beim Schreiben von HTML-Tags

Wir sollten besser aufpassen, denn die HTML-Poliz...

Beispiel für den Import von Nginx-Protokollen in Elasticsearch

Die Nginx-Protokolle werden von Filebeat gesammel...

Implementierung der kontinuierlichen Integration von Jenkins+Docker

Inhaltsverzeichnis 1. Einführung in Jenkins 2. Je...

Tutorial zur MySQL-Installation in der Linux-CentOS7-Umgebung

Detaillierte Einführung in die Schritte zur Insta...

Detaillierte Erklärung des Unterschieds zwischen Docker-Compose-Ports und Expose

Es gibt zwei Möglichkeiten, Container-Ports in Do...

Detaillierte Erklärung zur Verwendung von $emit in Vue.js

1. Übergeordnete Komponenten können Props verwend...

So aktivieren Sie die MySQL-Remoteverbindung

Aus Sicherheitsgründen erlaubt MySql-Server nur d...