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

Vollständiges HTML des Upload-Formulars mit Bildvorschau

Das Upload-Formular mit Bildvorschaufunktion, der...

Wann verwendet man Tabellen und wann CSS (Erfahrungsaustausch)

Die Haupttextseite von TW hatte früher eine Breite...

Der gesamte Prozessdatensatz der rekursiven Komponentenkapselung von Vue3

Inhaltsverzeichnis Vorwort 1. Rekursive Komponent...

Eine kurze Einführung in Web2.0-Produkte und -Funktionen

<br />Was ist Web 2.0? Web2.0 umfasst diese ...

Formel und Berechnungsmethode zur Schätzung der Server-Parallelität

Vor Kurzem musste ich den Server erneut einem Str...

Lösung zum Vergessen des MySQL-Root-Passworts in MACOS

MySQL ist ein relationales Datenbankverwaltungssy...

Vue implementiert die vollständige Auswahlfunktion

In diesem Artikelbeispiel wird der spezifische Co...

React-Beispiel zum Abrufen des Werts aus dem Eingabefeld

Reagieren Sie auf mehrere Arten, um den Wert des ...

Diskussion zum Problem der Initialisierung von Iframe-Knoten

Heute fiel mir plötzlich ein, die Produktionsprinz...

Bei verschachtelten MySQL-Transaktionen aufgetretene Probleme

MySQL unterstützt verschachtelte Transaktionen, a...