suchen
HeimWeb-Frontendjs-TutorialZugrunde nach Audiobeschreibungen für HTML5 -Video

Accessible Audio Descriptions for HTML5 Video

Zusammenfassung der Schlüsselpunkte

  • Die herkömmliche Audiobeschreibung sehbehinderte Audio -Beschreibung erfordert, dass professionelle Videobearbeitungsgeräte codiert und in eine separate Audiospur einer Videodatei eingebettet werden können. Dieser Prozess ist für die meisten Inhaltsersteller oft unrealistisch.
  • HTML5 -Videospezifikation liefert das audioTracks -Objekt, das theoretisch die Implementierung von Schalttasten für Audiobeschreibungen ermöglicht und die Audio- und Videovolumina separat steuert. Browser haben derzeit jedoch nur begrenzte Unterstützung für diese Funktion.
  • Eine andere Lösung besteht darin, MediaController, eine Funktion von HTML5 -Audio und -Video, zu verwenden, mit der mehrere Quellen synchronisiert werden können. Diese Funktion ist derzeit in der Browser -Unterstützung begrenzt, kann jedoch vorhandene, weit verbreitete Funktionen verwenden, um zwei Mediendateien gleichzeitig synchronisiert zu halten.
  • Die Video -API bietet Ereignisse wie Spielen, Pause, Ende und Timeupdate, um die Audio -Wiedergabe mit Videoereignissen zu synchronisieren. Das „TimeUpdate“ -Event ist für diesen Zweck besonders wichtig und löst durchschnittlich 3-5-mal pro Sekunde aus. Dieser Ansatz ermöglicht die Erstellung von zugänglichen Audiobeschreibungen, ohne dass dedizierte Software oder separate Versionen von Videos erforderlich sind.

Ein kürzlicher Kunde hat mich gebeten, einen zugänglichen Videoplayer zu erstellen, und sie wollte wirklich, dass eine der Funktionen Audiobeschreibung ist. Audiobeschreibungen richten sich an Blinde oder Menschen mit Sehbehinderung und liefern zusätzliche Sprachinformationen, um wichtige visuelle Details zu beschreiben. Traditionell müssen Videos mit Audiobeschreibungen speziell gemacht werden, und das Audio wird in einem separaten Track einer einzelnen Videodatei codiert. Dies erfordert ziemlich professionelle Videobearbeitungsgeräte, um diese Audio -Tracks zu codieren, was es den meisten Inhaltserstellern schwer macht, zu erreichen. Das sehe ich online mit Audiobeschreibungen. Zum Beispiel bietet BBC iPlayer einige solche Inhalte an, aber der Video-Player kann das relative Volumen nicht kontrollieren und kann die Audiobeschreibung nicht ausschalten. Sie können nur individuelle oder nicht deeskriptische Versionen der Show ansehen. HTML5 Debüt

HTML5 -Videospezifikation liefert audioTracks Objekte, wodurch die Schaltflächen von Schalter und die separaten Steuersatze und Videovolumina gesteuert werden können. Sein Browserunterstützung ist jedoch kaum vorhanden - zum Zeitpunkt des Schreibens unterstützt nur IE10 diese Funktion. Wie auch immer, meine Kunden wollen eine Audiobeschreibung in einer separaten Datei, die dem Video hinzugefügt werden kann, ohne eine separate Version zu erstellen und ohne dedizierte Software einfach zu verwenden. Natürlich muss es in einigen Browsern laufen. Meine nächste Idee ist es also, MediaController, eine Funktion von HTML5 -Audio und Video, zu verwenden, mit der Sie mehrere Quellen synchronisieren können. Die Browser -Unterstützung für sie ist jedoch gleichermaßen schlank - zum Zeitpunkt des Schreibens unterstützt nur Chrome diese Funktion. Sie wissen jedoch - auch ohne diese Unterstützung ist es offensichtlich kein Problem, zwei Mediendateien gleichzeitig zu starten, sondern nur synchronisiert werden muss. Können wir dies mit vorhandenen, weit verbreiteten Funktionen erreichen? Videoereignisse

Die Video -API bietet viele Ereignisse, mit denen wir uns anschließen können, was die Audio -Wiedergabe mit Videoereignissen synchronisieren sollte:

  • "abspielen" (ausgelöst, wenn Video abgespielt wird).
  • "pause" (Pause "(ausgelöst, wenn das Video angehalten wird).
  • "Ende" Ereignis (ausgelöst am Ende des Videos).
  • "TimeUpdate" -Ervent (kontinuierlich ausgelöst, wenn das Video abgespielt wird).

Das Ereignis "TimeUpdate" ist sehr kritisch. Die Frequenz, die sie auslöst, wird nicht angegeben und variiert tatsächlich stark - aber als grober Gesamtdurchschnitt entspricht sie 3-5 -mal pro Sekunde, was für unsere Zwecke ausreicht. Ich habe ähnliche Möglichkeiten gesehen, zwei Videodateien zu synchronisieren, aber dies ist nicht besonders erfolgreich, da selbst kleine Unterschiede offensichtlich sind. Audiobeschreibungen müssen jedoch normalerweise nicht so genau synchronisiert werden - in beiden Fällen ist eine Verzögerung von 100 Millisekunden akzeptabel - und das Abspielen von Audiodateien ist im Browser viel weniger belastet. Daher müssen wir nur vorhandene Videoereignisse verwenden, um die Audio- und Video -Wiedergabe zusammen zu sperren:

  • Audio abspielen, während das Video abgespielt wird.
  • Pausieren Sie das Audio, wenn das Video angehalten wird.
  • am Ende des Videos gleichzeitig das Video und das Audio innehalten.
  • Wenn die Zeit aktualisiert wird, wird die Audiozeit so eingestellt, dass die Audiozeit von der Videozeit unterschiedlich ist.

Nach einigen Experimenten fand ich, dass die besten Ergebnisse erzielt werden können, indem die Zeit in Sekunden verglichen wird, wie unten gezeigt:

if(Math.ceil(audio.currentTime) != Math.ceil(video.currentTime)) {
  audio.currentTime = video.currentTime;
}

Dies scheint kontraintuitiv zu sein, und zunächst dachte ich, wir brauchten die genauen Daten, die wir konnten, aber es scheint nicht der Fall zu sein. Durch Testen mit einer Text -Audio -Kopie des Video -Tracks (d. H. Sowohl der Audio als auch das Video erzeugen den gleichen Sound), ist es leicht zu hören, dass die Synchronisation gut oder schlecht ist. Basierend auf dieser Grundlage stellte ich fest, dass die Rundungszahlen bessere Synchronisationsergebnisse als nicht runding werden. Das ist also das endgültige Skript. Wenn der Browser MediaController unterstützt, müssen wir ihn nur verwenden. Andernfalls werden wir eine manuelle Synchronisation implementieren, wie unten beschrieben:

var video = document.getElementById('video');
var audio = document.getElementById('audio');

if(typeof(window.MediaController) === 'function') {
  var controller = new MediaController();
  video.controller = controller;
  audio.controller = controller;
} else {
  controller = null;
}

video.volume = 0.8;
audio.volume = 1;

video.addEventListener('play', function() {
  if(!controller && audio.paused) {
    audio.play();
  }
}, false);

video.addEventListener('pause', function() {
  if(!controller && !audio.paused) {
    audio.pause();
  }
}, false);

video.addEventListener('ended', function() {
  if(controller) {
    controller.pause();
  } else {
    video.pause();
    audio.pause();
  }
}, false);

video.addEventListener('timeupdate', function() {
  if(!controller && audio.readyState >= 4) {
    if(Math.ceil(audio.currentTime) != Math.ceil(video.currentTime)) {
      audio.currentTime = video.currentTime;
    }
  }
}, false);

bitte beachten MediaController

Wenn wir dies tun, funktioniert es in Chrome ohne JavaScript. Es wird Medienquellen synchronisieren, aber der Benutzer kann das Audio nicht steuern (einschließlich nicht in der Lage, es auszuschalten), da der Browser
<video mediagroup="foo"></video> ... <audio mediagroup="foo"> ... </audio>
nicht weiß, was das Audio darstellt. In diesem Fall ist es am besten, das Audio in das Video zu codieren, da es dann im

-Objekt angezeigt werden kann, das der Browser erkennen und in der Lage sein kann, native Steuerelemente bereitzustellen. Da wir jedoch keine Daten haben, ist dies eine irrelevante Frage! Wenn das Skript also nicht verfügbar ist, wird das Audio überhaupt nicht gespielt. Dies ist die letzte Demo, die in jeder neuesten Version von Opera, Firefox, Chrome, Safari oder IE9 oder später ausgeführt werden kann: - Audiobeschreibung Demo

Dies ist natürlich nur ein einfacher Beweis für die Konzeptdemonstration - es gibt keine anfängliche funktionale Erkennung, sondern nur die grundlegenden Steuerelemente, die von der nativen Eigenschaft "Kontrollen" bereitgestellt werden. Für die richtige Implementierung müssen benutzerdefinierte Steuerelemente (unter anderem) eine Taste zum Wechseln von Audio und einem separaten Lautstärkeregler bereitstellen. Die Schnittstelle sollte auch über die Tastatur zugänglich sein, was bei den nativen Steuerelementen einiger Browser nicht der Fall ist. Es muss auch die Pufferung korrekt verarbeiten - wenn Sie nach dem Punkt suchen, an dem das Video vorinstalliert ist, wird das Audio weiterhin frei abgespielt, bis das Video genug lädt, um es neu zu synchronisieren. Ich möchte auch erwähnen, dass die Beschreibung selbst fast nicht den professionellen Standards entspricht! Dort können Sie mich mit Audacity hören, aufnehmen und konvertieren. Aber das ist es, ich denke, es zeigt effektiv, wie niedrig die technischen Hindernisse dieses Ansatzes sind. Ich muss das Video nicht bearbeiten und das Audio in einer Stunde mit kostenloser Software gemacht. Als Proof of Concept ist es sehr erfolgreich - ich glaube, meine Kunden werden sehr zufrieden sein! FAQs (FAQs) für zugängliche Audiobeschreibungen für HTML5 -Videos

Was ist die Bedeutung des Zugriffs auf Audiobeschreibungen in HTML5 -Videos?

zugängliche Audiobeschreibungen spielen eine entscheidende Rolle bei der Integration von HTML5-Videos integrativer und benutzerfreundlicher. Sie bieten auditive Äquivalente visueller Informationen an, was für sehbehinderte Benutzer besonders vorteilhaft ist. Diese Beschreibungen beschreiben wichtige visuelle Details, die von der Hauptspur nicht verstanden werden können. Durch das Hinzufügen von zugänglichen Audiobeschreibungen können Inhaltsersteller sicherstellen, dass auf ihre Videos von einem breiteren Publikum zugegriffen werden kann, wodurch die digitale Einbeziehung fördert.

Wie füge ich meinem HTML5 -Video Audiobeschreibung hinzu?

Hinzufügen von Audiobeschreibung zu HTML5 -Video enthält mehrere Schritte. Zunächst müssen Sie einen separaten Audio -Track erstellen, der die visuellen Elemente des Videos beschreibt. Dies kann mit verschiedenen Audiobearbeitungssoftware erfolgen. Sobald der Audio -Beschreibungstrack fertig ist, können Sie ihn Ihrem HTML5 -Video mit dem Element mit dem auf "Beschreibungen" festgelegten Attribut hinzufügen. Dadurch wird sichergestellt, dass der Audio -Beschreibungstrack mit dem Video erkannt und gespielt wird.

Warum kann mein HTML5 -Video nicht abspielen?

Es kann mehrere Gründe geben, warum Ihr HTML5 -Video nicht abspielen kann. Dies kann auf Probleme mit der Videodatei selbst zurückzuführen sein, z. B. nicht kodiert kodiert. Dies kann auch auf das Problem zurückzuführen sein, dass der Webbrowser oder der Videoplayer das Video -Format nicht unterstützt. Um Fehler zu beheben, spielen Sie Videos auf verschiedenen Browsern oder auf verschiedenen Geräten ab. Wenn das Problem bestehen bleibt, müssen Sie möglicherweise die Videodatei überprüfen und sicherstellen, dass das Format von HTML5 unterstützt wird.

Welche häufig verwendeten Formate werden in HTML5 -Videos unterstützt?

HTML5 -Video unterstützt mehrere gemeinsame Videoformate, darunter MP4, Webm und OGG. Das MP4 -Format wird in allen wichtigen Browsern und Geräten häufig unterstützt, was es zu einer beliebten Wahl für Online -Videos macht. Webm und OGG sind Open -Source -Formate und werden weit verbreitet, obwohl sie in allen Browsern möglicherweise nicht ordnungsgemäß funktionieren.

Wie kann ich den Fehler "HTML5 -Videodatei nicht gefunden" beheben?

"HTML5 -Videodatei nicht gefunden" Fehler "Auftritt" tritt normalerweise auf, wenn der Browser die im Quellattribut des <video></video> -Elements angegebene Videodatei nicht ermittelt. Um diesen Fehler zu beheben, stellen Sie sicher, dass der Dateipfad in der Quelleigenschaft korrekt ist und dass sich die Videodatei im angegebenen Pfad befindet. Wenn der Dateipfad korrekt ist, überprüfen Sie, ob sich die Videodatei in HTML5 und das vom Browser unterstützte Format befindet.

Wie reagiert mein HTML5 -Video?

Um Ihr HTML5 -Video reaktionsschnell zu machen, können Sie CSS verwenden, um die Breite des Videos auf 100% und die Höhe auf Auto zu setzen. Dadurch wird sichergestellt, dass das Video nach oben oder unten skaliert wird, um die Breite seines Containers anzupassen, sodass es auf verschiedene Bildschirmgrößen reagiert.

Kann ich meinem HTML5 -Video Untertitel oder Erzählung hinzufügen?

Ja, Sie können Ihrem HTML5 -Video Untertitel oder Erzählungen mit einem Element mit einem auf "Bildunterschriften" oder "Untertiteln" eingestellten Element hinzufügen. Sie müssen eine WebVTT -Datei mit Untertiteln oder Erzählungen erstellen und diese Datei dann im SRC -Attribut des Elements verweisen.

Wie kann ich die Wiedergabe meiner HTML5 -Videos kontrollieren?

HTML5 bietet mehrere integrierte Video-Wiedergabesteuerelemente, darunter Spielen, Pause, Lautstärke und Vollbildmodus. Diese Steuerelemente können aktiviert werden, indem das Attribut für Steuerelemente zum <video></video> -Element hinzugefügt wird. Darüber hinaus können Sie JavaScript verwenden, um benutzerdefinierte Steuerelemente und Interaktionen zu erstellen.

Kann ich HTML5 -Videos auf meine Website einbetten?

Ja, Sie können das <video></video> -Element verwenden, um HTML5 -Videos auf Ihre Website einzubetten. Sie müssen das SRC -Attribut verwenden, um die Quelle der Videodatei anzugeben, und können auch optionale Attribute wie Steuerelemente, Autoplay und Loop hinzufügen, um die Video -Wiedergabe anzupassen.

Was sind die Vorteile der Verwendung von HTML5 für die Video -Wiedergabe?

HTML5 bietet viele Vorteile für die Video -Wiedergabe. Es unterstützt mehrere Videoformate, bietet integrierte Video-Wiedergabesteuerungen und ermöglicht die Hinzufügung von Zugangsfunktionen wie Untertiteln und Audiobeschreibungen. Darüber hinaus können HTML5 -Videos reagieren und sicherstellen, dass sie auf allen Geräten und Bildschirmgrößen großartig aussehen. Da HTML5 der Webstandard ist, wird er schließlich von allen modernen Webbrowsern ohne zusätzliche Plug-Ins oder Software unterstützt.

Das obige ist der detaillierte Inhalt vonZugrunde nach Audiobeschreibungen für HTML5 -Video. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Python gegen JavaScript: Community, Bibliotheken und RessourcenPython gegen JavaScript: Community, Bibliotheken und RessourcenApr 15, 2025 am 12:16 AM

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Von C/C nach JavaScript: Wie alles funktioniertVon C/C nach JavaScript: Wie alles funktioniertApr 14, 2025 am 12:05 AM

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

JavaScript -Engines: Implementierungen vergleichenJavaScript -Engines: Implementierungen vergleichenApr 13, 2025 am 12:05 AM

Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Jenseits des Browsers: JavaScript in der realen WeltJenseits des Browsers: JavaScript in der realen WeltApr 12, 2025 am 12:06 AM

Zu den Anwendungen von JavaScript in der realen Welt gehören die serverseitige Programmierung, die Entwicklung mobiler Anwendungen und das Internet der Dinge. Die serverseitige Programmierung wird über node.js realisiert, die für die hohe gleichzeitige Anfrageverarbeitung geeignet sind. 2. Die Entwicklung der mobilen Anwendungen erfolgt durch reaktnative und unterstützt die plattformübergreifende Bereitstellung. 3.. Wird für die Steuerung von IoT-Geräten über die Johnny-Five-Bibliothek verwendet, geeignet für Hardware-Interaktion.

Erstellen einer SaaS-Anwendung mit mehreren Mietern mit Next.js (Backend Integration)Erstellen einer SaaS-Anwendung mit mehreren Mietern mit Next.js (Backend Integration)Apr 11, 2025 am 08:23 AM

Ich habe eine funktionale SaaS-Anwendung mit mehreren Mandanten (eine EdTech-App) mit Ihrem täglichen Tech-Tool erstellt und Sie können dasselbe tun. Was ist eine SaaS-Anwendung mit mehreren Mietern? Mit Multi-Tenant-SaaS-Anwendungen können Sie mehrere Kunden aus einem Sing bedienen

So erstellen Sie eine SaaS-Anwendung mit mehreren Mietern mit Next.js (Frontend Integration)So erstellen Sie eine SaaS-Anwendung mit mehreren Mietern mit Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

Dieser Artikel zeigt die Frontend -Integration mit einem Backend, das durch die Genehmigung gesichert ist und eine funktionale edtech SaaS -Anwendung unter Verwendung von Next.js. erstellt. Die Frontend erfasst Benutzerberechtigungen zur Steuerung der UI-Sichtbarkeit und stellt sicher, dass API-Anfragen die Rollenbasis einhalten

JavaScript: Erforschung der Vielseitigkeit einer WebspracheJavaScript: Erforschung der Vielseitigkeit einer WebspracheApr 11, 2025 am 12:01 AM

JavaScript ist die Kernsprache der modernen Webentwicklung und wird für seine Vielfalt und Flexibilität häufig verwendet. 1) Front-End-Entwicklung: Erstellen Sie dynamische Webseiten und einseitige Anwendungen durch DOM-Operationen und moderne Rahmenbedingungen (wie React, Vue.js, Angular). 2) Serverseitige Entwicklung: Node.js verwendet ein nicht blockierendes E/A-Modell, um hohe Parallelitäts- und Echtzeitanwendungen zu verarbeiten. 3) Entwicklung von Mobil- und Desktop-Anwendungen: Die plattformübergreifende Entwicklung wird durch reaktnative und elektronen zur Verbesserung der Entwicklungseffizienz realisiert.

Die Entwicklung von JavaScript: Aktuelle Trends und ZukunftsaussichtenDie Entwicklung von JavaScript: Aktuelle Trends und ZukunftsaussichtenApr 10, 2025 am 09:33 AM

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.