PN2050: Playliste erstellen und Navi als MP3-Player Starten

  • Hi,
    nach etwas Nachtschicht habe ich herausbekommen in welchem Format der mitgelieferte Software MP3-Player die Playliste haben möchte.


    Die MP3 Dateien können in beliebigen Ordnern auf der SD Karte abgelegt sein.
    Hier das Format für die Playlist:



    <?wpl version="1.0"?>
    <smil>
    <head>
    <meta name="Generator" content="Microsoft Windows Media Player -- 10.0.0.4036"/>
    <title>Wiedergabeliste1</title>
    </head>
    <body>
    <seq>
    <media src="besipielordner1/01 - Annett Louisan - Das Spiel.mp3"/>
    <media src="beispielordner2/001-nelly_furtado_-_all_good_things-ministry.mp3"/>
    </body>
    </smil>



    Diese Playliste entspricht weitestgehend der des Windows Media Player 10 (wahrscheinlich auch 9 aber habe ich nicht ausprobiert).
    DER WICHTIGE UNTERSCHIED liegt in den Pfadtrennzeichen der Mediaplayer verwendet den "\" (Backslash) der MP3 Player des PN2050 möchte dort aber "/" Slash haben.
    falsch \mp3\song1.mp3
    richtig /mp3/song1.mp3


    Im Klartext heißt das, man kann ich komfortable eine Playliste mit dem Windows Media Player erstellen, speichert diese im Stammverzeichnis der SD Karte und ersetzt dann die "\" durch "/". Geht mit dem Editor von Windows ganz schnell und einfach, Menü Bearbeiten->Ersetzen die beiden Zeichen eintragen und dann auf "Alles ersetzen" und die Datei speichern.


    Die Playlist muß die Endung .wpl haben und darf in einem beliebigen Verzeichnis auf der SD Karte gespeichert sein. Dann müssen die Pfade aber relativ zu dem Verzeichnis in dem sich die Playliste befindet abgelegt werden. Hört sich kompliziert an und macht auch nicht viel Sinn. Wenn man es nicht unbedingt braucht sollte die Playliste ins Stammverzeichnis (root) abgelegt werden.
    Hier ein Beispiel für Playliste in einem Unterordner:


    Playliste im Ordner \MP3
    eine MP3 Datei ist im Order \1 und heißt 1.mp3
    eine ist im Ordner \MP3\MUSIKE\ und heißt 04-snow_patrol-shut_your_eyes.mp3



    <?wpl version="1.0"?>
    <smil>
    <head>
    <meta name="Generator" content="Microsoft Windows Media Player -- 10.0.0.4036"/>
    <title>test1</title>
    </head>
    <body>
    <seq>
    <media src="../1/1.mp3"/>
    <media src="../MP3/MUSIKE/04-snow_patrol-shut_your_eyes.mp3"/>
    </seq>
    </body>
    </smil>




    So und nun die Anleitung wie man den PN2050 direkt als MP3 starten kann.
    (Ob das sinnvoll ist und man es braucht ist eine andere Frage).
    Vorteil dieser Lösung ist das der Player schneller startet und man nicht so viele Knöpfe drücken muß bis die Musik anfängt.


    Man braucht dazu 1. ein Min-USB Kabel, 2. ActiveSync v4.5 German - Deutsch


    Vorgehen:
    Active Sync auf dem PC installieren und nach dem obligatorischen Neustart das Navi im eingeschalteten Zustand über das Mini-USB Kabel mit dem PC verbinden.
    Es sollte automatisch erkannt werden und Active Sync eine neue Partnerschaft erstellen wollen. Hier die Synchronisierungsoptionen alle ausschalten und dann die Partnerschaft erstellen.


    Ab dann hat man im Windows Explorer einen Eintrag "Mobiles Gerät"
    Dort kopiert man aus dem Ordner \ResidentFlash\System die Datei mp3.exe ins Stammverzeichnis der SD Karte und benennt sie dort um in den Namen vdoservice.exe


    Wenn man nun das Navi ausschaltet (3sec auf den Knopf) und danach wieder einschaltet kommt nach der großen Sanduhr direkt der MP3 Player.
    Diesen kann man zwar wie gewohnt über den "auswurfbutton" oben links beenden er wird aber weiterhin angezeit und man kann ab da das Gerät nicht mehr weiter bedienen. Nur noch aus und wieder einschalten.


    Ich werde wohl zwei SD Karten haben, eine fürs Navigieren mit meiner Musik die ich während der Fahrt im Auto höre und eine SD-Karte nur mit Musik die das Teil als MP3 Player startet.



    VideoPlayer ist das nächste Projekt.......
    (Falls jemand von Euch einen Videoplayer kennt der direkt als EXE unter Windows CE Läuft bitte bescheid geben).


    Danach kommt Windows CE nutzbar machen.
    Hier schonmal ein Vorgeschmack: Windows CE nutzen
    Wenn man den NortonCommander laut Stefans Anleitung aus der .cab Datei extrahiert hat, kann man diesen auch in vdoservice.exe umbennen und ins Stammverzeichnis der SD Karte kopieren, erspart man sich das loader.exe "geschrabbel".



    MfG
    Jens

    Einmal editiert, zuletzt von sensemann ()

  • Hi Jens,


    erstmal vielen Dank für die Mühe, die Du Dir gemacht hast. Ich hab das ausprobiert - und es hat nicht ganz so geklappt... Die Dateien mit Umlaut haben statt des Umlauts ein viereckiges Kästchen und dann wird die Datei nicht gefunden.


    Hab das mit einem Text-Editor gemacht. Ist dann recht aufwendig und umständlich...


    Vielleicht hast Du noch eine Idee wegen der Umlaute.


    Gruß, Achim

  • Hallo Achim,


    Zitat

    Hab das mit einem Text-Editor gemacht. Ist dann recht aufwendig und umständlich...


    Das Glaube ich Dir gerne.


    Ok habe das Problem mit Umlauten untersucht und hier die Lösung:
    Die .wpl Dateien sind XML-Dateien die die Zeichencodierung UTF-8 verwenden (voraussetzen). Das fällt nicht weiter auf, wenn man keine Sonderzeichen wie Umlaute verwendet. Dann sieht eine ASCII Datei einer UTF-8 codierten Datei sehr ähnlich.


    Es gibt außer den Umlauten noch andere Sonderzeichen die in XML Dateien beachtet werden müssen:
    Wie in HTML müssen auch in XML Sonderzeichen speziell formatiert werden. Die fünf Zeichen &, ', <, > und " werden wie in HTML angegeben:


    & muß als &amp; geschrieben werden
    ' muß als &apos; geschrieben werden
    < muß als &lt; geschrieben werden
    > muß als &gt; geschrieben werden
    " muß als &quot; geschrieben werden




    Unter Windows mit Notepad die Datei mit Speichern unter, Codierung: UTF-8, Dateityp: alle Dateien
    speichern, wie im Bild:
    [Blockierte Grafik: http://www.reichensteincity.de/jens/notepad_save.png]



    Dann muß man leider noch einen zweiten Schritt machen.
    Die Datei mit Editor unter DOS öffnen und dort die ersten drei Zeichen die vor "<?wpl version="1.0"?>" stehen aus der Datei löschen. Die Zeichen sehen bei mir so aus:
    [Blockierte Grafik: http://www.reichensteincity.de/jens/umlaute.png]


    Die Listen von Hand zu erstellen ist sicherlich die aufwändigste Methode...


    Wünsche Dir Viel Spaß beim Musikhören (nach der harten Arbeit des Playlisten erstellens).


    MfG
    Jens

  • Ich hab mir mal die kleine Mühe gemacht, einen kleinen Loader zu schreiben, der die originale "\ResidentFlash\Boot\LOADER.exe"-Datei ersetzten kann.


    Es handelt sich hierbei um ein ca. 140KB großes MFC-Programm welches für den ARMV4 kompiliert wurde. Es bietet nach dem Start vier Buttons an:
    Navi -> startet "\ResidentFlash\Taz\Bin\TazApp.exe"
    Explorer -> startet "\Windows\Explorer.exe"
    JPEG-Viewer -> startet "\ResidentFlash\System\Viewer.exe"
    MP3-Player -> startet "\ResidentFlash\System\MP3.exe"


    Für die Installation, einfach per ActiveSync das Navi mit dem PC verbinden, und dann die LOADER.exe aus dem Ordner "\ResidentFlash\Boot\" mit der im Anhang dieses Post ersetzten. (Ich empfehle ein Backup der originalen LOADER.exe um die Aktion wieder rückgängig machen zu können;-) )



    PS.: bei Interesse gebe ich auch gerne den Quellcode raus

  • @fishgod
    Feines Helferlein hast du da gebastelt. Funktioniert prächtig. Danke.
    Wenn du den Sourcecode online stellst, würde ich einen Blick riskieren.


    Ich werde auf meiner Homepage auf diesen Thread hinweisen, da er meinen "TotalCommander"-Trick doch etwas vereinfacht.



    Gruß ZZottel
    www.zzottel.de

  • So, hier ist jetzt der etwas aufgeräumtere Code (alles was der Assistent erstellt und nicht benötigt wird hab ich mal entfernt, und die Klassen heißten jetzt PN_Loader statt Test wie bei meinem ersten Test aus dem der Loader gewachsen war.)


    Anleitung zum Hinzufügen neuer Buttons (eigentlich auch schon für nicht-Programmierer geeignet)
    (z.B. für ScummVM, denn wenn der Explorer läuft und man das dann startet stört die Taskleiste vom Explorer...):
    1. Projekt mit M$ VC++ öffnen (oder vergleichbare IDE, diese Anleitung ist aber für M$ VC++ (wenn Ihr die deutsche Version von M$ VC++ habt heißen die Menüpunke entsprechend anders, da müsst ihr mal selber gucken))
    2. ResourceView aufrufen und PN_Loader -> PN_Loaderppc.rc -> Dialog ausklappen
    3. IDD_DIALOG mit Doppelklick öffnen
    4. Fenster vergrößern und mit der Toolbox Buttons per Drag&Drop hinzufügen
    5. Rechtsklick auf neuem Button -> Add Event Handler...
    6. Folgendes auswählen:

    Message type: BN_CLICKED
    Function handler name: so lassen wie er ist, oder mit Wunschnamen ersetzten
    Class list: CPN_LoaderDlg
    Add and Edit anklicken

    7. um ein vorhandenes Programm auszuführen muss im Bauch der Funktion (zwischen den {} wo //TODO: Add.... steht) folgendes eingefügt werden:
    ExecuteExe(L"\\Pfand\\zum\\programm.exe");
    wobei hier natürlich der tatsächliche Pfad eingetragen werden muss, so wie bei den Funktonen dadrüber im Quelltext



    *EDIT: irgentwie funktioniert der CODE-Tag und der PHP-Tag hier nicht, deswegen sind es jetzt soviele Edits geworden...