Mehrere zufällige Audios in Dauerschleife aus einem Ordner abspielen ( Verbesserungsvorschläge gesucht )
Hallo zusammen,
ich habe mal eine Frage zum Thema Webentwicklung an euch. Ich benutze das nachfolgende Script um aus einem Ordner quasi in Dauerschleife zufällige Audiofiles wiederzugeben. Leider muss auf meine Art aber die Seite immer wieder neugeladen werden, was natürlich einige ungewollte Nebenerscheinungen mit sich bringt. Gibt es da eine elegantere Art das zu lösen ? Also irgendwie in einer Schleife oder ähnlichem ? Hat da jemand eventuell einen Vorschlag / Ansatz ?
Güße Sebastian
ich habe mal eine Frage zum Thema Webentwicklung an euch. Ich benutze das nachfolgende Script um aus einem Ordner quasi in Dauerschleife zufällige Audiofiles wiederzugeben. Leider muss auf meine Art aber die Seite immer wieder neugeladen werden, was natürlich einige ungewollte Nebenerscheinungen mit sich bringt. Gibt es da eine elegantere Art das zu lösen ? Also irgendwie in einer Schleife oder ähnlichem ? Hat da jemand eventuell einen Vorschlag / Ansatz ?
Güße Sebastian
<?php
$dir = "audiofiles/";
$scan = scandir($dir);
$random = rand(2, sizeof($scan)-1);
?>
<html>
<body>
<audio controls autoplay id="audios" src="audiofiles/<?php echo $scan[$random]; ?>"></audio>
<script type='text/javascript'>
document.getElementById('audios').addEventListener('ended',myHandler,false);
function myHandler(e) {
document.write('<meta http-equiv="refresh" content="0; URL=demo.php">');
}
</script>
</body>
</html>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 605375
Url: https://administrator.de/forum/mehrere-zufaellige-audios-in-dauerschleife-aus-einem-ordner-abspielen-verbesserungsvorschlaege-gesucht-605375.html
Ausgedruckt am: 13.03.2025 um 19:03 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
geh das ganze doch anders herum an, lies dir mit php alle files aus und randomize das ganze dann mit javascript.
https://stackoverflow.com/questions/37635281/playing-random-sounds-conti ...
Deine "PlayList" kannst dir ja einfach so in definieren:
geh das ganze doch anders herum an, lies dir mit php alle files aus und randomize das ganze dann mit javascript.
https://stackoverflow.com/questions/37635281/playing-random-sounds-conti ...
Deine "PlayList" kannst dir ja einfach so in definieren:
<?php
$t = glob('audiofiles/*.mp3');
$tracks = ;
foreach($t as $track){
var_dump($track);
array_push($tracks,"'".$track."'");
}
$playList = "var playList = [".implode(',',$tracks)."];";
?>
<script type="text/javascript">
<?php echo $playList; ?>

Und wenns a bisl Ajax sein soll, z.B. ...
<?php
if (isset($_GET['randomfiles'])){
header("Content-Type: application/json");
$dir = "./audiofiles/";
$filter ="*.mp3";
$sounds = glob($dir . $filter);
$num = is_numeric($_GET['randomfiles']) ? $_GET['randomfiles'] : 1;
$result = ;
for($i = 0;$i < $num;$i++){
$result = $sounds[rand(0,count($sounds)-1)];
}
echo json_encode($result);
}else{
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>RandomAudio</title>
</head>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function PlayRandomFile(){
$.getJSON("<?php echo $_SERVER['PHP_SELF'];?>",{"randomfiles" : 1},function(data){
$('#audios').attr("src",data);
});
}
$(document).ready(function(e) {
$('#audios').on("ended",function(){
PlayRandomFile();
});
PlayRandomFile();
});
</script>
<body>
<audio controls autoplay="true" id="audios" src="" />
</body>
</html>
<?php
}
?>