Košík je prázdný

Vývoj moderních webových aplikací často zahrnuje práci s audio a video obsahem, což je oblast, kde JavaScript hraje klíčovou roli. Tento článek poskytne podrobný přehled technik a API, které JavaScript nabízí pro manipulaci s audio a video médii, včetně přehrávání, záznamu, úprav a streamování obsahu.

HTML5 Media Elements

Základem práce s audio a video v JavaScriptu jsou HTML5 elementy <audio> a <video>. Tyto elementy poskytují jednoduchý způsob, jak vložit média do webových stránek a umožňují programovou interakci prostřednictvím JavaScriptu.

Přehrávání médií

Pro kontrolu přehrávání médií JavaScript poskytuje metody jako play(), pause(), a vlastnosti jako currentTime pro skákání po časové ose, volume pro úpravu hlasitosti a muted pro ztlumení zvuku. Příklad použití:

var video = document.getElementById("mojeVideo");
video.play(); // Spustí přehrávání videa
video.pause(); // Pozastaví přehrávání videa
video.currentTime = 120; // Skočí na 2 minuty videa

Záznam médií

Pro záznam audio a video obsahu můžeme využít MediaStream Recording API. Toto API umožňuje záznam médií přímo z kamery nebo mikrofonu uživatele. K začátku záznamu využíváme objekt MediaRecorder.

navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then(stream => {
  const mediaRecorder = new MediaRecorder(stream);
  mediaRecorder.start();
  // Zde bychom přidali logiku pro manipulaci se záznamem
})
.catch(error => {
  console.error("Nelze přistupovat k médiím: ", error);
});

Úpravy médií

Pro úpravy audio a video obsahu JavaScriptem lze využít různé techniky a knihovny. Jednou z možností je Web Audio API pro pokročilou práci s audio obsahem, kde lze například měnit hlasitost, přidávat efekty nebo provádět analýzu zvuku.

var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var oscillator = audioCtx.createOscillator();
oscillator.type = 'square';
oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // Hodnota v Hertzech
oscillator.connect(audioCtx.destination);
oscillator.start();

Streamování médií

Pro streamování audio a video obsahu se často využívá Media Source Extensions (MSE) API. Toto API umožňuje dynamické přidávání segmentů médií do přehrávacího bufferu, což je ideální pro přehrávání obsahu bez přerušení nebo pro implementaci vlastního streamovacího protokolu.

var mediaSource = new MediaSource();
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener('sourceopen', function() {
  var sourceBuffer = mediaSource.addSourceBuffer('video/webm; codecs="vp8"');
  // Zde bychom přidali logiku pro načítání a přidávání médií do bufferu
});

 

Práce s audio a video v JavaScriptu nabízí širokou škálu možností, od základního přehrávání médií, přes záznam a úpravy, až po pokročilé streamování obsahu. S nástupem HTML5 a moderních API se otevírají nové možnosti pro vývojáře, umožňující vytvářet bohaté a interaktivní webové aplikace. Důležité je experimentovat s dostupnými nástroji a hledat nové způsoby, jak zlepšit uživatelskou zkušenost na webu.