Jak stanovit počet audio smyček (loop)?
Moderátor: Mods_senior
-
Martin Baroch
- Level 2

- Příspěvky: 201
- Registrován: 17 říj 2013 14:48
Jak stanovit počet audio smyček (loop)?
Mám na testovacïm webu vloźeno: <audio autoplay loop>, takže se huba stále přehrává. Chtěl bych omezit počet smyček na 2-3.
Jak by v takovém případě měl vypadat zápis kódu? <audio autoplay loop=3> mi NEFUNGUJE.
Děkuji za informaci.
MB
Jak by v takovém případě měl vypadat zápis kódu? <audio autoplay loop=3> mi NEFUNGUJE.
Děkuji za informaci.
MB
-
ChrisTaylor
- Level 2

- Příspěvky: 161
- Registrován: 20 dub 2014 07:17
Re: Jak stanovit počet audio smyček (loop)?
Značka audio takovou hodnotu atributu loop nepodporuje, tj. lze to udělat jedině pomocí JavaScriptu.
-
Martin Baroch
- Level 2

- Příspěvky: 201
- Registrován: 17 říj 2013 14:48
Re: Jak stanovit počet audio smyček (loop)?
Vytvořil jsem tento kód v JS:
<script>
var audio = new Audio() ;
audio.src ="spojeno 1.mp3";
audio.loop = true;
audio.play();
</script>
Kam mám napsat údaj o redukovaném počtu opakování nahrávky?
MB
<script>
var audio = new Audio() ;
audio.src ="spojeno 1.mp3";
audio.loop = true;
audio.play();
</script>
Kam mám napsat údaj o redukovaném počtu opakování nahrávky?
MB
-
ChrisTaylor
- Level 2

- Příspěvky: 161
- Registrován: 20 dub 2014 07:17
Re: Jak stanovit počet audio smyček (loop)?
Samotná třída pro přehrávání zvuku nepodporuje opakování zvuku nkrát, to si člověk musí vytvořit sám. Například:
Kód: Vybrat vše
let audioPlayer = new Audio("audio.mp3");
let playsCounter = 0;
const numberOfRepeats = 3;
audioPlayer.addEventListener("ended", function()
{
playsCounter++;
if (playsCounter < numberOfRepeats)
{
this.play();
}
});
audioPlayer.play();
-
Martin Baroch
- Level 2

- Příspěvky: 201
- Registrován: 17 říj 2013 14:48
Re: Jak stanovit počet audio smyček (loop)?
Jak a kam mám na stránce ten kód vložit. Má být uzavřen do nějakých tagů?
Děkuji
MB
Děkuji
MB
-
ChrisTaylor
- Level 2

- Příspěvky: 161
- Registrován: 20 dub 2014 07:17
Re: Jak stanovit počet audio smyček (loop)?
Jako nejvhodnější se jeví vytvořit externí soubor pro kód, např. main.js, ten se umístí do adresáře pro web a poté na se něj odkáže v hlavičce následovně:
Kód: Vybrat vše
<head>
/* … */
<script src="main.js"></script>
</head>
-
Martin Baroch
- Level 2

- Příspěvky: 201
- Registrován: 17 říj 2013 14:48
Re: Jak stanovit počet audio smyček (loop)?
Mám v externím souboru uzavřít ten kód mezi tagy <script> a </script> nebo mám do něho jen zkopírovat text kódu?
MB
Dodatečně přidáno po 51 minutách 35 vteřinách:
Vložil jsem to do scriptu takto:
<head>
/* … */
<script src="main.js"></script>
</head>
<script>
var audio = new Audio() ;
audio.src ="spojeno 1.mp3";
audio.loop = true;
audio.play();
</script>
Ale omezení na 3 přehrávky mi nefunguje. Co s tím mohu udělat?
MB
MB
Dodatečně přidáno po 51 minutách 35 vteřinách:
Vložil jsem to do scriptu takto:
<head>
/* … */
<script src="main.js"></script>
</head>
<script>
var audio = new Audio() ;
audio.src ="spojeno 1.mp3";
audio.loop = true;
audio.play();
</script>
Ale omezení na 3 přehrávky mi nefunguje. Co s tím mohu udělat?
MB
-
ChrisTaylor
- Level 2

- Příspěvky: 161
- Registrován: 20 dub 2014 07:17
Re: Jak stanovit počet audio smyček (loop)?
Půjdu tedy na to více podrobněji. Zvuk se opakovaně přehraje až po stisknutí tlačítka, neboť některé prohlížeče blokují automatické přehrávání bez interakce uživatele. V adresáři tvého projektu vytvoř soubory index.html a main.js.
Obsah souboru index.html:
Obsah souboru main.js:
V kódu výše akorát nahraď textový řetězec v konstruktoru třídy Audio na cestu k tvému zvukovému souboru, nynější je tam jako příklad.
Obsah souboru index.html:
Kód: Vybrat vše
<!doctype html>
<html lang="cs">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Opakování zvuku</title>
<script src="main.js" defer></script>
</head>
<body>
<button id="play-sound">Přehrát zvuk opakovaně</button>
</body>
</html>
Kód: Vybrat vše
document.querySelector("#play-sound").addEventListener("click", () =>
{
let audioPlayer = new Audio("file-name.mp3");
let playsCounter = 0;
const numberOfRepeats = 3;
audioPlayer.addEventListener("ended", function()
{
playsCounter++;
if (playsCounter < numberOfRepeats)
{
this.play();
}
});
audioPlayer.play();
});
-
Martin Baroch
- Level 2

- Příspěvky: 201
- Registrován: 17 říj 2013 14:48
Re: Jak stanovit počet audio smyček (loop)?
Už je to v pořádku. Jsem asi trochu mdlého rozumu a nacpal jsem na stránku jak původní kód audio, tak odkaz na main.js
Púvodní kód audio jsem odstranil a ponechal jen odkaz na main.js
Funguje to perfektně a v externím souboru mohu libovolně stanovovat počet přehrávek.
Mnohokrát děkuji.
Martin Baroch
Púvodní kód audio jsem odstranil a ponechal jen odkaz na main.js
Funguje to perfektně a v externím souboru mohu libovolně stanovovat počet přehrávek.
Mnohokrát děkuji.
Martin Baroch
-
ChrisTaylor
- Level 2

- Příspěvky: 161
- Registrován: 20 dub 2014 07:17
Re: Jak stanovit počet audio smyček (loop)?
Není zač, případně označ téma jako „Vyřešené“ (symbol fajfky), aby mohlo jako sloužit vzory pro ty, kteří mají obdobný problém.
