php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 8 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 18-08-2010, 00:31
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard 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 .

Geändert von pascal007 (18-08-2010 um 08:00 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 18-08-2010, 00:40
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #3 (permalink)  
Alt 18-08-2010, 07:43
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard

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 .
Mit Zitat antworten
  #4 (permalink)  
Alt 18-08-2010, 10:06
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

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 ...)
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #5 (permalink)  
Alt 18-08-2010, 11:17
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard

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 ?
Mit Zitat antworten
  #6 (permalink)  
Alt 18-08-2010, 12:51
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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.
Mit Zitat antworten
  #7 (permalink)  
Alt 18-08-2010, 13:00
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard

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 .
Mit Zitat antworten
  #8 (permalink)  
Alt 18-08-2010, 13:42
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

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 ..
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #9 (permalink)  
Alt 18-08-2010, 17:22
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard

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 .
Mit Zitat antworten
  #10 (permalink)  
Alt 18-08-2010, 23:36
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

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....
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #11 (permalink)  
Alt 19-08-2010, 08:10
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard

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 .
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[iPhone 3GS] gmx mit iPhone synchronisieren phpMorpheus2 Off-Topic Diskussionen 5 03-12-2009 20:50
[iPhone] - Wie möglich machen, das ein Script ein iPhone erkennt? (für spez. Inhalte) powermax90 PHP Developer Forum 12 15-07-2009 10:29
Contact formular File senden ronpepa PHP Developer Forum 2 22-03-2009 14:11
SOAP-Client erstellen und Dateien senden Mr. S PHP Developer Forum 3 29-03-2005 19:14

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:52 Uhr.