Ich habe in diesem Forum ein paar Tage gesucht, aber kann nichts finden, das für meine genaue Situation funktioniert. Ich weiß etwas javascript/jquery, aber ich würde mich nicht gut an dieser Sprache nennen ...Stoppen Sie alle Audio, aber die ausgewählte (dynamisch erstellte Audio-Elemente)
Ich habe eine Liste mit mp3-Dateien dynamisch aus einer Datenbank abgerufen, und ich möchte nicht, dass es mehrere zu spielen Lieder zur gleichen Zeit. Das Problem ist, dass ich nicht weiß, wie man den Code für "alle anderen Songs außer dem, der mit diesem Playbutton verbunden ist, wenn er gedrückt wird" stoppt. so frustrierend ..
meine PHP-Datei:
$result = mysqli_query($link, "SELECT * FROM songs");
$count = 0;
while($row = mysqli_fetch_array($result)) {
$title = $row['title'];
$filename = $row['filename'];
echo '<li data-filename="' . $filename . '" class="song">
<button class="play' . $count . '">Play</button>
<button class="stop' . $count . '">Stop</button>'
. $title .
'</li>';
$count++;
}
Und hier ist meine js-Datei:
var count = 0;
$('.song').each(function() {
var filename = 'songs/' + $(this).data('filename');
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', filename);
$('.play' + count).click(function(){
audioElement.play();
// I need to put something here to make all the other songs pause/reset //
});
$('.stop' + count).click(function(){
audioElement.pause();
audioElement.currentTime = 0;
});
count++;
});
Da ich weiß wirklich nicht, was ich zu tun habe versucht, nur ein paar Dinge wie:
$(this).siblings().audioElement.pause();
audioElement.siblings().pause();
Dann las ich etwas über alle Audio zu stoppen, bevor es die eine, die Play-b verbunden spielt utton. Aber ich weiß nicht, wie ich sie alle "sammeln" soll, damit ich auf einmal stoppen (pausieren und zurücksetzen) kann.
Ich habe dieses versucht, aber das ruft das HTML5-Tag, so dass es nicht funktioniert.
function stopAll() {
var xGroup = document.querySelectorAll('audio');
for (var i = 0; i < xGroup.length; i++) {
xGroup[i].pause();
xGroup[i].currentTime = 0;
}
}
Nun löschte ich alle meine Code und begann stattdessen die '
@Pixeldoris Sie sind willkommen :) Wenn Sie glauben, dass es die Frage beantwortet, können Sie es als die Antwort markieren (oder Sie können Ihre Lösung), so dass andere diese Frage nutzen können. Vielen Dank! – acontell