• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mehrere MP3 nacheinander abspielen

Taberna

Mitglied
Hallo liebes Schwarmwissen,
ich bin schon seit einigen Tagen am ausprobieren, allerdings habe ich noch keine Lösung gefunden.

Im Grunde genommen möchte ich mehrere mp3-Dateien nacheinander abspielen lassen. Als mögliche Lösung hätte ich

<body>
<embed name="Songtitel1" src="melder.mp3" border="0" width="1" height="1" autostart="true" Delay="0" VOLUME="100" loop="false" controls="smallconsole">
<?php
ob_flush();
sleep(65);
?>
<embed name="Songtitel2" src="musik.mp3" border="0" width="1" height="1" autostart="true" Delay="0" VOLUME="100" loop="false" controls="smallconsole">
</body>

favorisiert, jedoch wird die 2. Datei nicht abgespielt. Wer kann mich auf den richtigen Pfad führen ?
PS: Die Songtitel1 ist natürlich 64 Sekunden lang.
 
Werbung:
Mit PHP erreichst du das nicht!
HTML:
<!doctype html>
<html lang="de">
  <head>
    <meta charset="utf-8">
  </head>
  <body>
  <audio id="audio1" src="1.mp3" type="audio/mpeg"></audio>
  <audio id="audio2" src="2.mp3" type="audio/mpeg"></audio>
 <script type="text/javascript">
  var currentTrack = 0;
  var audios = [];

  audios.push('audio1');
  audios.push('audio2');

  document.getElementById(audios[currentTrack]).play();

  document.getElementById(audios[currentTrack]).addEventListener('ended',function(){
    currentTrack++;
    document.getElementById(audios[currentTrack]).play();
  });
</script>

Playing Songs....
  </body>
</html>
 
oha... wird wohl ein spannendes projekt. von JS habe ich bisher noch weniger ahnung, als das, was ich mir hart und mühsam in php erarbeite.
Erstmal vielen Dank für die Hilfestellung, die ihr mir geben mögt.
Das Problem ist, dass ich, abhängig von Parametern in einer Datenbank nicht jede Audio-datei immer abspielen mag.
Also meine Datenbank hat u.a. folgende Struktur
Audio 1 -> TRUE / FALSE
Audio 2 -> TRUE / FALSE
Audio 3 -> TRUE / FALSE
Audio 4 -> TRUE / FALSE
Audio 5 -> TRUE / FALSE

Also es wird in der Datenbank entweder TRUE oder FALSE eingetragen und dann soll die Seite im Verlauf nur die Dateien abspielen, deren Wert in der Datenbank mit TRUE hinterlegt ist.
Ich hoffe, ich habe mich verständlich genug ausgedrückt, wie ich es meine.
Da ich nicht weiß, ob und wie ich JS mit php kombinieren darf, komme ich mit euren Lösungsansätzen aktuell leider noch nicht zum Ziel.
Ist es möglich, mit dem php-Befehl "echo" quasi die JS ausgabe zu erzeugen, also so in der Art:
<?php
echo "<script type='text/javascript'>
  1. var currentTrack = 0;
  2. var audios = [];

  3. audios.push('audio1');
  4. audios.push('audio2');

  5. document.getElementById(audios[currentTrack]).play();

  6. document.getElementById(audios[currentTrack]).addEventListener('ended',function(){
  7. currentTrack++;
  8. document.getElementById(audios[currentTrack]).play();
  9. });
  10. </script>"
?>
PS: Natürlich ohne die Zeilennummern, die sind hier irgendwie von der Eingabemaske.
 
Werbung:
Ich bin Euch mal wieder sehr dankbar.
Meine Kenntnisse in JS reichen vermutlich nicht aus, um die Struktur von Sempervivum auf meine Bedürfnisse umzubauen.
Die Struktur in dem Script von m.scatello verstehe ich sehr gut, da ich die einzelnen Teile nachvollziehen kann, was wo passiert. Ich habe es in einer Testversion bereits probiert und bin mir sicher, dass ich es nun so umbauen kann, dass es meine Anforderung erfüllt.
Ich danke für diese Scriptschnippsel und werde mich auch an die Variante von Sempervivum mal versuchen.
Bis zu meinem nächsten Problem.... Bye bye
 
Werbung:
Mit JavaScript ist es möglich, mehrere Audio-Dateien in einer Wiedergabeliste (Playlist) zusammenzufassen und dann beliebig abzuspielen, zu wiederholen oder anzubieten.


Code:
 var sndLetItSnow = new Audio("audio/letItSnow.m4a"),
    sndSanta = new Audio("audio/snow.m4a"),
    playlist = [sndLetItSnow, sndSanta],
    current = null,
    idx = 0;

  function playSound() {
      if (current === null || current.ended) {
          // go to next
          current = playlist[idx++];

          // check if is the last of playlist and return to first
          if (idx >= playlist.length)
              idx = 0;

           // return to begin
           current.currentTime=0;

           // play
           current.play();
      }

  }

  setInterval(playSound, 1000);
 
Nach ein bisschen experimentieren ist es das Script von Ruedgersclub geworden. Mit meinen Kenntnissen konnte ich das Script gut an meine Bedürfnisse anpassen. Leider habe ich noch folgendes Problem und keine Ahnung, woran es liegen könnte. Auf meinem Handy und auch auf weiteren mobilen Geräten erfolgt leider keine Ausgabe des Ton, auf anderen mobilen Geräten wird es einwandfrei abgespielt. Hat jemand eine Idee ??
Hatte auf meinem Handy schon den Quelltext ausgeben lassen, das Script wird einwandfrei an den Browser übergeben.
 
Wahrscheinlich gilt auch hier: It's not a bug, it's a feature. Auf den meisten mobilen Geräten wird das automatische Abspielen von Medieninhalten geblockt und nur auf Grund einer Benutzeraktion zugelassen. Grund ist, dass der Benutzer vor dem ungewollten Laden von großen Dateien geschützt werden soll.
Wie praktisch in meinem Fall o_Oo_O [Ironie aus]
 
Werbung:
Zurück
Oben