-
21. 01. 2012, 21:56 #1Mitglied
- Registriert seit
- May 2008
- Beiträge
- 122
Php ordner auslesen und mit player wiedergeben
Hallo Gullis
Ich bin auf der suche nach einen script oder tutorial
ich würde gerne einen musik ordner ( mp3, wma ) mittels php auslesen lassen was so kein problem ist denke ich mal.
ich würde das jetzt allerdings gerne mittels eines layers abspielen lassen da ich es für eine homepage benötige.
der player sollte eine start stop funktion so wie vor und zurück und lautstärke funktion besitzen.
kurzform nochmal:
Musikordner auslesen -> player in homepage einbauen -> ausgelesene musik in player wiedergeben.
PS: Ein player der wenn möglich ohne ein addon in jedem Browser funktionstüchtig ist.
Danke schonmal für jede idee die ich bekommen kann.
-
22. 01. 2012, 03:10 #2
Re: Php ordner auslesen und mit player wiedergeben
-
22. 01. 2012, 17:33 #3Mitglied
(Threadstarter)
- Registriert seit
- May 2008
- Beiträge
- 122
Re: Php ordner auslesen und mit player wiedergeben
Danke für den Link allerdings hilft es mir leider nicht ganz so wie ich es gerne hätte.
das mit dem ordner auslesen und soweiter klappt wunderbar .
was ich jetzt allerdings gerne hätte das mit die lieder aus meinem ordner nicht angezeigt werden so das ich sie klicken ,
sondern das das erste lied in meinem ordner sofort abgespielt wird und wenn das erste lied durch ist das dann automatisch das 2te genommen wird jenachdem wiviele ich halt drin habe.
zu guter letzt sollte der player start stop nächste zurück ablauf balken und lautstärke einstellung haben hoffe sowas ist möglich habe es auch schon mit dem flow flash player probert doch der ließ mir nicht den ganzen ordner einfügen
PS: Gibt es eigentlich irgendeinen Player für eine Homepage bei dem man kein addon braucht zb. Windows Media Player?
-
22. 01. 2012, 18:06 #4Mitglied
- Registriert seit
- Jun 2009
- Ort
- Im Forum
- Beiträge
- 530
Re: Php ordner auslesen und mit player wiedergeben
Das was du da haben möchtest ist mit reinem HTML + JavaScript + PHP nur schwierig umzusetzten (zumindest bin ich mir nicht sicher, ob JavaScript direkt mit mp3s was anfangen kann.)
Dafür brauchst du meine sErachtens etwas, das einen Flashplayer oder ähnliches verwendet. Demnach brauchst du für alles davon auch ein entsprechendes Add-On im Browser.
-
22. 01. 2012, 18:41 #5Mitglied
- Registriert seit
- Nov 2011
- Beiträge
- 353
Re: Php ordner auslesen und mit player wiedergeben
Mehr Eigeninitiative?!
Mit PHP Ordnerinhalt auslesen.
Mit PHP zu jeder MP3 die Laufzeit bestimmen (benötigt ggf Bibs).
Ausgabe generieren:
Zum Abspielen nimmst du flowplayer oder einen entsprechenden HTML5-Befehl (google!)PHP-Code:<?php
$ausgelesene_mp3s = array();
//auslesen und in array rein schreiben
// passend ausgeben:
foreach($ausgelesene_mp3s as $key => $mp3){
$laufzeit = function_or_class_call_to_get_runtime($mp3);
echo $key . ' => array(\''.$mp3. '\', '.$laufzeit.'),';
}
?>
Pseudocode für den Javascript-Teil:
Im HTML Teil steht dannCode:pointer = 0; function play(int pointer){ songlist = array( 0 => array('song1.mp3', 180), 1 => array('song2.mp3', 180), 2 => array('song3.mp3', 180) ); // enthält alle Songs mit deren Spieldauer, Liste wird von PHP-Teil generiert // Anweisungen, die den Player aktualisieren und starten spiele_song(songlist[pointer][0]); timeout(songlist[pointer][1], play(pointer+1)); // ruft play nachdem der song vorbei ist nochmal mit erhöhtem pointer auf }
zum initialen Aufruf der Abspiel-Funktion und natürlich irgendwo der Player selbst (z.B. flowplayer oder ein html5-Player).HTML-Code:<body onload="play(0);">
@Roin: HTML5, PHP und JavaScript sollten dazu in der Tat vollkommen ausreichen.
Für nicht-HTML5-fähige Browser oder bei deaktiviertem Javascript wäre wahrscheinlich flash notwendig. Eventuell auch eine Java-Applikation.
-
22. 01. 2012, 19:03 #6Mitglied
- Registriert seit
- Jun 2009
- Ort
- Im Forum
- Beiträge
- 530
Re: Php ordner auslesen und mit player wiedergeben
Bei derartigen Vorhaben muss man immer davon ausgehen, dass nicht alle Nutzer JavaScript aktiviert haben oder einen modernen Browser haben, der HTML5 versteht.
Daher kam direkt mein Hinweis, dass es mit normalem HTML (dabei meinte ich eben das "alte" HTML) nicht einwandfrei klappen wird.
Durch derartige Wünsche schließt man nunmal immer einige Nutzer aus. Entweder die Nutzer haben JavaScript deaktiviert/HTML5 versteht deren Browser nicht oder Sie haben kein Java/Flash-Plugin.
-
23. 01. 2012, 01:23 #7Mitglied
(Threadstarter)
- Registriert seit
- May 2008
- Beiträge
- 122
Re: Php ordner auslesen und mit player wiedergeben
Danke euch schonmal für die guten tips das script hat mir leider nicht ganz geholfen hab das ding einfach nicht zum laufen gebracht also hab ich es nochmal auf die andere art und weise gemacht mit php.
funzt auch soweit ganz gut spielt auf alle fälle schonmal nach auslesen meine lieder ab , mein problem ist jetzt nur ich habe 3 lieder drin und bekomme auch für diese jeweils ein player vor die nase gesetzt
ich hätte das jetzt noch gerne nur auf einem player so das ich sagen kann ich klicke ein lied vor oder zurück , habe da eine eine php schleife gedacht aber weiß nicht so recht wie ich da am besten ansetzen soll.
Hier das Script:
Danke schonmalPHP-Code:<?
$verzeichnis = "flowplayer/musik/";
$dir = opendir($verzeichnis);
while($datei = readdir($dir)) {
if (is_file($verzeichnis.$datei) && (substr($datei, -3, 3) == "mp3") && (substr($datei, -3, 3) == "wma") && (substr($datei, -3, 3) == "mp4"))
{
echo '<object width="200" height="20">
<param name="src" value="'.$verzeichnis.$datei.'">
<param name="autoplay" value="true">
<param name="controller" value="true">
<embed src="'.$verzeichnis.$datei.'" autostart="true" loop="true" width="200" height="20" controller="true"></embed>
</object>';
}
}
?>
-
23. 01. 2012, 15:31 #8Mitglied
- Registriert seit
- Jun 2009
- Ort
- Im Forum
- Beiträge
- 530
Re: Php ordner auslesen und mit player wiedergeben
Kannst du nicht einfach eine Wiedergabeliste erstellen und dann entsprechend auslesen lassen?
-
23. 01. 2012, 16:24 #9Mitglied
- Registriert seit
- Nov 2011
- Beiträge
- 353
Re: Php ordner auslesen und mit player wiedergeben
Wieviel % der Nutzer gibt es, die JavaScript nicht aktiviert haben?
Mal abgesehen von der Randgruppe einiger Gullinutzer! Ich gehe mal davon aus, dass das Projekt auf die Masse und nicht speziell auf die Gruppe Leute ausgelegt ist, die ihren Browser zum Hochsicherheitstrakt machen.
Wer Videostreams im Internet anschauen möchte wird in den seltensten Fällen keinen Flash-Player installiert haben.
Daher denke ich, kann man sich mit gutem Gewissen auf entsprechende Techniken verlassen, auch wenn ich persönlich alles andere als überzeugt bin, von flash und javascript..
Bei Flowplayer kann man definitiv Wiedergabelisten erstellen. Das wird aber auch in den beiliegenden Anwendungs-Beispielen gezeigt..
-
23. 01. 2012, 17:45 #10Mitglied
(Threadstarter)
- Registriert seit
- May 2008
- Beiträge
- 122
Re: Php ordner auslesen und mit player wiedergeben
ich könnte schon eine wiedergabeliste verwenden aber möchte ich dieses vermeiden weil ich keine lust habe jedesmal die wiedergabe liste zu erweitern ich möchte das lediglich einfach nur musik in den ordner schmeissen und fertig ohne noch weiter unnötige anpassungen. und die wiedergabe liste würde mein projekt was ich grad mache total versauen weil ich nur den laufbalekn samt button unter dem header eingebaut habe.
daher ja die frage wie ich das in eine schleife legen kann so das ich anstatt pro lied ein player habe nur einen kompletten player habe mit dem ich einfach ein lied weiter machen kann.
Ob dann jeder user auf der Welt ein plugin hat kann ich ja nict entscheiden das ist ja dann jedem selbst überlassen.
-
23. 01. 2012, 18:37 #11
Re: Php ordner auslesen und mit player wiedergeben
Das macht doch in etwa das Script, was Du hier hast: http://board.gulli.com/thread/169072...7#post14360887
Wenn Du da den Flowplayer (oder ähnliches) integrierst, dann holt der sich immer über PHP die aktualisierten Listen. Oder nicht?
-
23. 01. 2012, 18:52 #12
Re: Php ordner auslesen und mit player wiedergeben
PHP zu nutzen um den Verzeichnisinhalt auszulesen ist sicherlich sinnvoll, deine Player-Implementierung jedoch nicht. Abgesehen von dem nicht standardisierten embed-Element bedingt deine Art der Einbindung, dass ein Browser-Plugin vorhanden ist, welches deine Audio-Inhalte abspielt. Solche Plugins dürften allerdings (insbesondere unter nicht-Windows-Systemen) weit weniger verbreitet sein als das Flash-Player-Plugin. Auch ist auf diesem Weg keine Schnittstelle zur Erstellung von Playlists (ob automatisiert oder manuell) spezifiziert.
Für Audio-Dateien im mp3- oder AAC/mp4-Format könntest du das HTML5-audio-Element mit einem Flash-basierten Player als Fallback nutzen. In modernen Browsern sind dann keinerlei Plugins erforderlich, während in älteren Browsern (und in Browsern, welche den jeweiligen Audio-Codec nicht direkt unterstützen) das verhältnismässig weit verbreitete Flash-Plugin genutzt wird. Auf diese Weise wirst du jedoch keine Audio-Dateien im proprietären WMA-Format abspielen können.
Dazu könntest du z.B. jPlayer (http://jplayer.org/) nutzen, unter http://jplayer.org/latest/demo-02/ findet sich ein Beispiel, welches die Nutzung der integrierten Playlist-Funktionalität aufzeigt. Die Playlist könntest du in deinem Fall automatisiert mit PHP aus dem Verzeichnisinhalt generieren, die Titel aus den Dateinamen ableiten (oder aus eventuellen ID3-Tags auslesen und anschliessen cachen).
Edit: Tab nicht aktualisiert ... zeitliche Überschneidung mit Dexters Beitrag.Geändert von Kugelfisch23 (23. 01. 2012 um 18:54 Uhr) Grund: Anmerkung hinzugefügt.
-
25. 01. 2012, 22:25 #13Mitglied
(Threadstarter)
- Registriert seit
- May 2008
- Beiträge
- 122
Re: Php ordner auslesen und mit player wiedergeben
Hallo Jungs
Danke für die Antworten habe jetzt auch ne möglichkeit gefunden wie ich den Flashplayer nutzen kann.
Ich habe mir ein PHP script gemacht das mir den aktuellen song nach dem auslesen in meine XML einträgt der Code sieht so aus:
und die XML so:PHP-Code:<?php
// Öffnet ein Unterverzeichnis mit dem Namen "daten"
$verzeichnis = openDir("music/");
// Verzeichnis lesen
while ($file = readDir($verzeichnis)) {
// Höhere Verzeichnisse nicht anzeigen!
if ($file != "." && $file != "..") {
$song = "<song name=\"$file\" file=\"$file\" />";
$datei = "miniConfig.xml";
$handle = fopen ( "$datei", "a");
fwrite ($handle, $song);
fclose ($handle);
}
}
// Verzeichnis schließen
closeDir($verzeichnis);
?>
was mich jetzt noch ein wenig stört ist wenn er neue lieder eintragen soll dann hängt er sie ganz ans ende:Code:<?xml version=\"1.0\"?> <player width=\"150\" height=\"20\" background=\"background.jpg\" imagePath=\"music/includes/wmplayer/miniSkin\" songsPath=\"music/songs\" repeat=\"false\"> <info x=\"0\" y=\"-2\" width=\"148\" height=\"15\" fontsize=\"9\" fontfamily=\"Arial\" fontcolor=\"0x000000\" /> <bar x=\"42\" y=\"14\" width=\"106\" height=\"1\" image=\"bar.jpg\" show=\"true\" /> <slider width=\"4\" height=\"7\" image=\"slider.jpg\" show=\"true\" /> <startButton x=\"11\" y=\"11\" image=\"play.jpg\" show=\"true\" /> <stopButton x=\"21\" y=\"11\" image=\"stop.jpg\" show=\"true\" /> <pauseButton x=\"11\" y=\"11\" image=\"pause.jpg\" show=\"false\" /> <nextButton x=\"31\" y=\"11\" image=\"next.jpg\" show=\"true\" /> <lastButton x=\"1\" y=\"11\" image=\"prev.jpg\" show=\"true\" /> <songs> <song name="barbie.mp3" file="barbie.mp3" /> <song name="lambada.mp3" file="lambada.mp3" /> <song name="rainoverme.mp3" file="rainoverme.mp3" /> </player> </song>
und ich würde dies gerne auf eine bestimmte zeile begrenzen das ich dem script sage trage es mir in die und die zeile ein als beispiel zeile 13 geht das ?Code:<?xml version=\"1.0\"?> <player width=\"150\" height=\"20\" background=\"background.jpg\" imagePath=\"music/includes/wmplayer/miniSkin\" songsPath=\"music/songs\" repeat=\"false\"> <info x=\"0\" y=\"-2\" width=\"148\" height=\"15\" fontsize=\"9\" fontfamily=\"Arial\" fontcolor=\"0x000000\" /> <bar x=\"42\" y=\"14\" width=\"106\" height=\"1\" image=\"bar.jpg\" show=\"true\" /> <slider width=\"4\" height=\"7\" image=\"slider.jpg\" show=\"true\" /> <startButton x=\"11\" y=\"11\" image=\"play.jpg\" show=\"true\" /> <stopButton x=\"21\" y=\"11\" image=\"stop.jpg\" show=\"true\" /> <pauseButton x=\"11\" y=\"11\" image=\"pause.jpg\" show=\"false\" /> <nextButton x=\"31\" y=\"11\" image=\"next.jpg\" show=\"true\" /> <lastButton x=\"1\" y=\"11\" image=\"prev.jpg\" show=\"true\" /> <songs> <song name="barbie.mp3" file="barbie.mp3" /> <song name="lambada.mp3" file="lambada.mp3" /> <song name="rainoverme.mp3" file="rainoverme.mp3" /> </player> </song><song name="boom.mp3" file="boom.mp3" />
-
26. 01. 2012, 00:36 #14
Re: Php ordner auslesen und mit player wiedergeben
Sinnvoller wäre, einen XML-Parser wie z.B. PHPs SimpleXML- oder DOM-Erweiterung zu nutzen, siehe http://www.php.net/manual/en/book.simplexml.php bzw. http://www.php.net/manual/en/book.dom.php. Ein simples Beispiel basierend auf SimpleXML wäre etwa (unter Verwendung von glob() statt readdir()):
Erklärungen zu den genutzten SimpleXML-Methoden findest du unter http://www.php.net/manual/en/class.simplexmlelement.php.PHP-Code:$xml = new SimpleXMLElement('input.xml', 0, TRUE);
foreach(glob('music/*.mp3') as $file) {
$song = $xml->songs->addChild('song');
$song->addAttribute('name', $file);
$song->addAttribute('file', $file);
}
echo $xml->asXML();
Beachte auch, dass deine aktuelles XML-Markup ungültig ist. Mutmasslich wird auch der von dir eingesetzte Flash-Media-Player dieses nicht korrekt verarbeiten können. Es fehlt das schliessende songs-Tag, dafür findet sich am Ende ein unpassendes schliessendes song-Tag. Auch sind die Backslashes unpassend. Korrekt wäre etwa
was auch das oben genannte Beispiel-Skript korrekt verarbeitet und erweitert.HTML-Code:<player width="150" height="20" background="background.jpg" imagePath="music/includes/wmplayer/miniSkin" songsPath="music/songs" repeat="false"> <info x="0" y="-2" width="148" height="15" fontsize="9" fontfamily="Arial" fontcolor="0x000000" /> <bar x="42" y="14" width="106" height="1" image="bar.jpg" show="true" /> <slider width="4" height="7" image="slider.jpg" show="true" /> <startButton x="11" y="11" image="play.jpg" show="true" /> <stopButton x="21" y="11" image="stop.jpg" show="true" /> <pauseButton x="11" y="11" image="pause.jpg" show="false" /> <nextButton x="31" y="11" image="next.jpg" show="true" /> <lastButton x="1" y="11" image="prev.jpg" show="true" /> <songs> </songs> </player>
-
28. 01. 2012, 04:24 #15Mitglied
(Threadstarter)
- Registriert seit
- May 2008
- Beiträge
- 122
Re: Php ordner auslesen und mit player wiedergeben
Da bin ich wieder hoffe habt mich vermisst

da ich das mit dem in eine bestimmte Zeile schreiben nicht hinbekommen habe , habe ich das jetzt komplett umgebaut
.
Es klappt auch alles soweit ganz gut bis auf eine übliche kleinigkeit vlt findet ja einer den Fehler
.
Das Script funzt soweit habe das jetzt über arrays gelöst doch trotz dessen das ich in der while schleife die angabe mache das er die ausgelesenen songs untereinander hängen soll taucht nur ein lied auf was in meine datei geschrieben wird vlt kann ja da einer bitte mal schnelle abhilfe schaffen.PHP-Code:<?php
// Öffnet Verzeichnis
$verzeichnis = openDir("music/");
// Verzeichnis lesen
while ($file = readDir($verzeichnis))
{
// Höhere Verzeichnisse verweigern
if ($file != "." && $file != "..")
{
$song = array();
$song[0]="<?xml version=\"1.0\"?>
<player width=\"150\" height=\"20\" background=\"background.jpg\" imagePath=\"music/includes/wmplayer/miniSkin\" songsPath=\"music/songs\" repeat=\"false\">
<info x=\"0\" y=\"-2\" width=\"148\" height=\"15\" fontsize=\"9\" fontfamily=\"Arial\" fontcolor=\"0x000000\" />
<bar x=\"42\" y=\"14\" width=\"106\" height=\"1\" image=\"bar.jpg\" show=\"true\" />
<slider width=\"4\" height=\"7\" image=\"slider.jpg\" show=\"true\" />
<startButton x=\"11\" y=\"11\" image=\"play.jpg\" show=\"true\" />
<stopButton x=\"21\" y=\"11\" image=\"stop.jpg\" show=\"true\" />
<pauseButton x=\"11\" y=\"11\" image=\"pause.jpg\" show=\"false\" />
<nextButton x=\"31\" y=\"11\" image=\"next.jpg\" show=\"true\" />
<lastButton x=\"1\" y=\"11\" image=\"prev.jpg\" show=\"true\" />
<songs>\n";
$song[1]="<song name=\"$file\" file=\"$file\" />\n";
$song[2]=" </songs>\n</player>";
$xml = "miniConfig.xml";
$handle = fopen ( "$xml", "w");
fwrite ($handle, $song[0]);
while ($song) {
$handle = fopen ( "$xml", "a");
fwrite ($handle, $song[1]);
break;
}
fwrite ($handle, $song[2]);
fclose ($handle);
}
}
// Verzeichnis schließen
closeDir($verzeichnis);
?>
mit gockel und anderen seiten wie www.php.net, www.php-einfach.de, quacknet php kam ich einfach nicht weiter
Danke schonmal für alle antworten.
PS. Vielleicht kommt das Thema ja mal zum ende
-
28. 01. 2012, 08:42 #16
Re: Php ordner auslesen und mit player wiedergeben
Weshalb nutzt du nicht wie vorgeschlagen SimpeXML oder einen anderen XML-Parser? Das wäre nicht nur weit einfacher, sondern auch sinnvoller als zu versuchen, eine XML-Datei wie eine Textdatei mit fixen Zeilennummern zu verarbeiten und zu verändern.
In deiner neuen Implementierung ist das Problem, dass die Datei in jedem Schleifendurchlauf überschrieben wird. Du müsstest den Teil bis inklusive des öffnenden songs-Tags vor der Schleife ausgeben, in der Schleife das Markup für die einzelnen song-Elemente erzeugen und am Ende die schliessenden songs- und player-Tags ausgeben.
-
28. 01. 2012, 12:30 #17Mitglied
(Threadstarter)
- Registriert seit
- May 2008
- Beiträge
- 122
-
28. 01. 2012, 12:35 #18
Re: Php ordner auslesen und mit player wiedergeben
Es wäre hilfreich, die Fehlermeldungen zu kennen, dann könnte man sich die Ursache gezielt untersuchen. Beachte, dass mein Beispiel eine XML-Datei wie die in meinem Beitrag genannte als Vorlage unter dem Namen input.xml im aktuellen Verzeichnis erwartet. Das Ergebnis wird direkt ausgegeben - entweder trägst du das PHP-Skript direkt als Konfigurationsdatei in deinem Player ein, oder zu fügst für die asXML()-Methode den Namen der Ausgabedate als Parameter hinzu, i.e.:
Siehe auch http://www.php.net/manual/en/simplexmlelement.asxml.php.PHP-Code:$xml->asXML('output.xml');
-


Zitieren

mehr lesen...







Resident Evil 6 erscheint in...
Heute, 15:21 in gulli:news