MP3-File an iPhone-Client senden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MP3-File an iPhone-Client senden

    Hallo

    Ich möchte gerne für zu Hause meine MP3s streamen können. Da ich auf meinem Server auch einen Webserver mit PHP habe, dachte ich mir das ich eine Webapp schreibe.

    Die Webapp steht und und die Dateien werden an das iPhone wie folgt gestreamt:

    PHP-Code:
    <?php

    error_reporting
    (E_ALL);

    ob_start("ob_gzhandler"); // ist nicht mehr eingebaut, macht keinen Sinn (Hinweis von unset)

    require_once('config.php');

    $file HOME_DIR.urldecode($_GET['file']);

    $fp fopen($_SERVER["SCRIPT_FILENAME"], "r");
    $etag md5(serialize(fstat($fp)));
    fclose($fp);

    $size = @filesize($file); 

    header('Last-Modified:'.time());
    header('ETag:'.$etag);
    header('Accept-Ranges: bytes');
    header('Content-Length:'.$size);
    header('Connection: close');
    header('Content-Type: audio/mpeg');

    readfile($file);

    ?>
    Das funktioniert bei vielen MP3s und bei vielen nicht (80:20 ca ). Bei google finde ich leider nirgends ein Beispiel welches verspricht zu 99,999% zu funktionieren. Ich habe gelesen dass der MP im iPhone die einen MP3s einfach nicht abspielen möchte.

    Habt ihr eine Idee ob an meinem Script oben etwas falsch sein könnte? Über hilfreiche hinweise wär ich sehr dankbar .
    Zuletzt geändert von pascal007; 18.08.2010, 08:00.

  • #2
    Wie wäre es einfach mit einem direkten Verweis auf die MP3-Datei …*das was du da gebaut hast, macht ohnehin nichts anderes, da du den Ausgabepuffer eingeschaltet hast: Die Datei wird erst übertragen, sobald das Script komplett abgearbeitet ist.

    Sollte es dann auch nicht funktionieren (was ich annehme), würde ich die Dateien einfach mal vergleichen (Bitrate, etc), und so feststellen, was der Medienplayer kann und was nicht –*oder halt mal einen Blick in die Spezifikationen, die du auf den Apple-Seiten findest.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Ja ich würde die Dateien gerne direkt verlinken, jedoch ist mir das nicht möglich da meine Verzeichnisstruktur wie folgt aussieht:

      F:\Music\..
      F:\Webserver (root des IIS)\stream\script.php

      Ich möchte ja das Root-Webverzeichnis nicht in meinem Music-Folder haben .

      Aber ich werde Dateien die nicht funktionieren mal ins Verzeichnis des Webservers kopieren und direkt verlinken das wäre mal einen Versuch wert . Weil direkt verlinkte MP3s werden auch mit der Playtime angezeigt meine Streams sind 0:00 lang (die die Funktionieren) und laufen dann bis zum Ende . Danke für deine Ideen .

      Falls sonst jemand eine Idee hätte, bitte hier schreiben .

      Kommentar


      • #4
        ich kann dir zwar nicht bei deinem generellen Probs helfen ... aber .....

        Wenn du die MP3 Datei wirklich so als Stream "rüberschiebst" ist die Länge 0:00 ziemlich logisch, ein echter Stream (zb Shoutcast) hat auch IMMER die Länge 0:00, weil die Länge ja direkt davon abhängt, wie lange du mit deinem Player (zB Winamp) diesen Stream abspielst. Ein "normaler" Stream ist ja nicht nach einem Lied zu ende, sondern läuft meist 24/7 ....

        Von daher .. mit einem push-Dienst oder sonstwie die einzelne MP3 Datei direkt an dein iPhone zu schicken, scheint mir die bessere Wahl, weil dann hast du einzelne Titel, die dann korrekt mit Playtime und so weiter wiedergegeben werden.

        Was das grundsätzliche Problem angeht ... ich weiß nicht, wie dein iPhone zum Beispiel mit variabler Bitrate , jointStereo und anderen Feinheiten(^^) von MP3 umgeht ... möglicherweise stört es sich auch einfach daran, das manche Encoding Software ziemlich "eigenartige" Header in die MP3 Datei schreibt .. (eben abweichend von IDv1 / IDv2 ...)
        [font=Verdana]
        Wer LESEN kann, ist klar im Vorteil!
        [/font]

        Kommentar


        • #5
          Kannst du das mit dem push-Dienst irgendwie ein bisschen konkretisieren ? Das klingt vielversprechend.

          Gibt es da Referenzen im Internet wo ich mich einlesen könnte? Und wie würde dieser Push-Dienst auf PHP-Seite aussehen?

          Ich finde mit der Suche nach Push-Dinest immer nur die Push-Funktion des iPhones oder Blackberrys... du meintest nicht diese oder ?

          Kommentar


          • #6
            Zitat von pascal007 Beitrag anzeigen
            Ja ich würde die Dateien gerne direkt verlinken, jedoch ist mir das nicht möglich da meine Verzeichnisstruktur wie folgt aussieht:

            F:\Music\..
            F:\Webserver (root des IIS)\stream\script.php
            Dann richte dir einen Alias o.ä. ein, so dass das erstgenannte Verzeichnis auch über HTTP ereichbar ist ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Da hab ich leider überhaupt keine Ahnung von, wie ich das anstellen könnte (muss ich das in Windows oder im IIS machen?)... aber wäre auch eine mögliche Lösung .

              Kommentar


              • #8
                wenn du sowieso IIS nimmst, dann kannst du diese "alias"-Sache über hard-links / junctions im ntfs-Dateisystem machen ...

                da bis einschließlich Windows XP dies nur mit KommandoZeilenm-tools möglich ist, hab ich für diese Zwecke Link Shell Extension verwendet .. damit kannst du im Explorer über rechte-Mausclicks die gewünschten verlinkungen einrichten ... (im einfachsten Fall einfach eine junction setzen .. dazu auf den Musik-Ordner rechts klicken, als Link-Quelle wählen, dann in deinem IIS-root-Ordner wieder rechts-clicken und dann die junction oder Hard-Link erstellen ...

                wenn du dann navigierst und von IIS-root in den Musik-Ordner gehst, merkst du eigentlich gar nicht, dass du ganz wo anders gelandet bist - und ein <..> führt dich auch wieder in den IIS-root-Ordner
                Du kannst damit auch Links auf Ordner auf anderen Laufwerken setzen - vorausgesetzt, die sind lokal an deinen Rechner angeschlossen und haben ntfs-Dateisystem ..
                [font=Verdana]
                Wer LESEN kann, ist klar im Vorteil!
                [/font]

                Kommentar


                • #9
                  Oke das mit der Link Shell Extension klappt tip top... auch bei allen Titeln. Somit muss es fast beim php-File liegen, dass das iPhone teilweise bockt...

                  @eagle275: kannst du jetzt trotz allem das mit dem Push-Service nochmals erläutern... das würde mich wirklich noch interessieren .

                  Kommentar


                  • #10
                    eigentlich hatte ich da schon soetwas gemeint, wie die Push-dienste der oben von dir genannten Smartphones ..

                    ich hatte ja schon geschrieben, dass ich beim eigentlichen Problem , wie die Titel auf dein iPhone kommen, nicht so viel Erfahrung hab, ich schieb die zum Beispiel einfach per USB-Kabel auf mein Handy....
                    [font=Verdana]
                    Wer LESEN kann, ist klar im Vorteil!
                    [/font]

                    Kommentar


                    • #11
                      Hehe ja das mach ich auch. Aber bei so viel Musik kann man nicht immer alles auf dem Smartphone haben und wenn man auf dem Balkon sitzt und denkt: "Dieser Song wäre jetzt genau richtig!" Dann kann man den einfach abrufen vom Server per iPhone (sofern man ihn hat ).

                      Aber in diesem Falle werde ich es mit dem Verlink-Verknüpfung-Dings lösen . Danke vielmals für den äusserst nützlichen Hinweis auf Link Shell Extension !

                      Sollte doch jemand noch die richtigen Header-Infos finden, oder einen Fehler im Script feststellen, darf er es trotzdem melden .

                      Kommentar

                      Lädt...
                      X