Hilfe zum Bau eines Media Players

Hallo,
eigentlich wollte ich gar nicht erst anfangen, meine mp3 Files über IPS laufen zu lassen, sondern einfach über einen Windows Media Player. Finde ich aber umständlich und mit dem Touchscreen schlecht zu bedienen.
Ich habe zum Testen mal einen Button ins Dashboard gesetzt und ein mp3-File gestartet. Soweit so gut. Aber wie komme ich weiter?? Ich habe schon das Forum und die Wiki abgesucht und nichts brauchbares gefunden. Wenn, dann bezieht sich alles auf V1 oder es geht um „Playlisten“ die ich nicht habe und nicht weiß, wieich die anlegen/abrufen soll. Daher kann ich auch mit parsey’s „rekursiv-script“ absolut nichts anfangen.
Für den Anfang wäre ich schon zufrieden, wenn ich ganze CD’s, die ich in jeweils eigenen Ordnern ablegen würde, starten und stoppen könnte. Falls ich diese Playlisten dazu brauche, sollte ich halt wissen wie das geht.
Wenn ich das Beispiel von Ferengi-Master anschaue kann ich nur neidisch gucken:o
Gruß
Ralf

Hallo Ralf,

mach dir keine Gedanken.
Das ist alles einfacher als Du denkst. Wir bekommen das schon auf die Reihe.:wink:
Mit Playlisten ist bei paresys Script einfach ein Ordner gemeint, der mittels dieser Funktion abgespielt werden kann. Das finde ich im übrigen sogar besser als Playlisten, da hier mittels PHP auch schnell mal eine Datei aus dem Ordner verschoben oder gelöscht werden kann.

  1. Funktion von paresy in das Script kopieren.
  2. Abspielen eines Ordners geht ganz einfach:

$SK3 = 12345; //Mediaplayerinstanz
$dir = "D:/Musik/AAA__Räume__AAA/Party-Hits" // Ordner mit der Musik
WAC_SetShuffle($SK3, true);
WAC_SetRepeat($SK3, true);
WAC_ClearPlaylist($SK3);
WAC_Play_Dir($SK3,$dir);

Naja…DU hast’s ja schon…:rolleyes:

Also das script erzeugt sich sowas wie eine Playlist aus irgendwelchen mp3’s. Und wie wird das Script nun aufgerufen? Muss ich das nur einmal manuell starten und dann hat er das drin?

Zum Start: Man nehme also einen Button, bei dessen betätigen Dein Script aufgerufen wird? Dann wird der gesamte Ordner runtergespielt? Und stoppen ist

WAC_Stop(12345);

das müsste ich hinkriegen. Die anderen WAC-Befehle funktionieren dann wie in der Befehlsref. beschrieben?

Sorry für die blöden Fragen aber ich habe die internen Abläufe mit den Scripten noch nicht kapiert.
Was ich bis jetzt gemacht habe ging zum Glück ohne kapieren:D Also quasi amok-programmiert:D

Danke für Deine Hilfe großer Meister

Also das script erzeugt sich sowas wie eine Playlist aus irgendwelchen mp3’s.

Halt aus allen mp3 die sich in dem angegebenen Ordner befinden.

Und wie wird das Script nun aufgerufen? Muss ich das nur einmal manuell starten und dann hat er das drin?
Zum Start: Man nehme also einen Button, bei dessen betätigen Dein Script aufgerufen wird? Dann wird der gesamte Ordner runtergespielt? Und stoppen ist…

So is es.:slight_smile:

Aber nicht vergessen, paresys Funktion mit in das Script nehmen!

Tja, das war wohl wieder mal zu einfach für mich:(
Meine Frage war eigentlich ob ich das Parsey-script einmal ausgeführt werden muss - und zum Start des Ordnerinhaltes Dein Script. Aber Du sagst

paresys Funktion mit in das Script nehmen
Das Ergebnis habe ich mal angehängt. Der Musik-Ordner müsste richtig angegeben sein. Ich bekomme eine Fehlermeldung in Zeile 43 - das ist die letzte Zeile.
Hab ich wohl nicht richtig gemacht?

<?
 function ReadRecursive($dir, $subdir = "") {
  $result = Array();
  $files = scandir($dir."/".$subdir);
  foreach($files as $file)
  {
   if(($file != ".") && ($file != "..")){
    if(is_dir($dir."/".$subdir."/".$file)) {
     $res = ReadRecursive($dir, $subdir."/".$file);
     $result = array_merge($res, $result);
    } else {
     $filedir = $subdir."/".$file;
     $filedir = substr($filedir, 1, strlen($filedir));
     $result[] = $filedir;
    }
   }
  }
  return $result;
 }


function WAC_PlayDir($id, $dir)
{
 $allowed = Array("mp3", "wma");
 $files = ReadRecursive($dir);

//Den Zufallsgenerator von PHP verwenden
//shuffle($files);

 WAC_ClearPlaylist($id);
 foreach($files as $file)
 {
  $ext = pathinfo($dir."/".$file, PATHINFO_EXTENSION);
  if(in_array(strtolower($ext), $allowed))
  {
   WAC_AddFile($id, $dir."/".$file);
  }
 }
 WAC_Play($id);
}

$SK3 = 34455 /*[Media Player]*/; //Mediaplayerinstanz
$dir = "C:/CD/Yello"; // Ordner mit der Musik
WAC_SetShuffle($SK3, true);
WAC_SetRepeat($SK3, true);
WAC_ClearPlaylist($SK3);
WAC_Play_Dir($SK3,$dir);


?>

WAC_Play_Dir($SK3,$dir); <— Da ist schonmal ein _ zuviel.

(Ich weiß, dass es Ferengi Master so gepostet hat - aber er hat seine Funktion bestimmt umbenannt. Bei dir heißt sie anders)

paresy

Oh sorry. Ja stimmt, hatte die Schreibweise bei mir angepasst.:o

Danke Euch - es funktioniert. Klasse Gerät, dieser Mediaplayer!!

Nachdem die Titel nun so genial eingelesen werden, eine unverschämte Frage: Kann ich die Reihenfolge (außer Shuffle) irgendwie beeinflussen? Es gibt ja Fälle, wo die Tracks wie auf CD ablaufen müssen (Hörspiel oder so). Bis jetzt läufts alphabetisch. Soll ich die Titel umbenennen (1Track_X; 2Track_Y…)?

Nächste Frage: wie bekomme ich den Pfad für die Titel ($dir) in das Script? Ich möchte ja nicht für jeden Ordner ein eigenes Funktions-script schreiben und aufrufen…wäre arg unelegant…
Also: drück’ Button, setze $dir=C:/CD/…, und im script: Get $dir von irgendwo…

Kann das mal jemand übersetzen?:stuck_out_tongue:

Vielen Dank

Nächste Frage: wie bekomme ich den Pfad für die Titel ($dir) in das Script?

Das ist am besten über ein array zu lösen.
Quasi so:


$dir = array("c:/ordner1","c:/ordner2","c:/ordner3");

Und dann kannst Du im Dashbord jedem Button den Namen der Playlist(des Ordners) geben und dem Script über ipsymid einfach eine 1,2 oder 3 schicken und über WAC_PlayDir($SK3,$dir[$wert]); abspielen. Den Wert bekommst Du über $wert = $IPS_COMPONENT;

Ok danke, ich werd’s mal versuchen.
Aber künftig bitte in diversen Erklärungen das Wort[b] „einfach“ [/b] weglassen :smiley:
Gruß
Ralf

Hallo Ralf,

wenn Du bei einem Schritt nicht weiterkommst melde Dich einfach nochmal.:smiley: