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 stanovit počet audio smyček (loop)? Vyřešeno
-
- Level 2
- Příspěvky: 201
- Registrován: říjen 13
- Pohlaví:
- Stav:
Offline
- ChrisTaylor
- Level 2
- Příspěvky: 161
- Registrován: duben 14
- Pohlaví:
- Stav:
Offline
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.
-
- Level 2
- Příspěvky: 201
- Registrován: říjen 13
- Pohlaví:
- Stav:
Offline
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: duben 14
- Pohlaví:
- Stav:
Offline
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();
-
- Level 2
- Příspěvky: 201
- Registrován: říjen 13
- Pohlaví:
- Stav:
Offline
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: duben 14
- Pohlaví:
- Stav:
Offline
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>
-
- Level 2
- Příspěvky: 201
- Registrován: říjen 13
- Pohlaví:
- Stav:
Offline
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: duben 14
- Pohlaví:
- Stav:
Offline
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>
Obsah souboru main.js:
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();
});
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.
-
- Level 2
- Příspěvky: 201
- Registrován: říjen 13
- Pohlaví:
- Stav:
Offline
Re: Jak stanovit počet audio smyček (loop)? Vyřešeno
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: duben 14
- Pohlaví:
- Stav:
Offline
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.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů