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>
Please also mark the comments that contributed to the solution of the article
Content-Key: 605375
Url: https://administrator.de/contentid/605375
Printed on: April 20, 2024 at 11:04 o'clock
5 Comments
Latest comment
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
}
?>