2009-08-06 5 views
7

Unsere schöne App, die mp3s von unserem Server in eine lokale Datei auf dem Telefon lädt, dann spielt von dieser Datei wurde für die Verwendung zu viel Bandbreite abgelehnt.iPhone App abgelehnt für "Übertragung übermäßiger Datenmengen"

Ich verstehe die Ablehnung (wir herunterladen statt Streaming) und nicht mit ihrer Entscheidung zu beleidigen ... unsere erste Priorität war die Qualität der Benutzererfahrung.

Ich frage mich nur ... was mache ich jetzt?

Es gibt keine festen Regeln ... Apple sagt nur: "Muss nicht in Apples vernünftigerweise die Netzwerkkapazität oder Bandbreite übermäßig verwenden oder über Gebühr belasten".

Jeder hat Daten darüber, was Apple angemessene Datenübertragungsraten hält?

Sollte ich die Pufferdatei in kurzen Schritten füllen? Sollte die Datei mit einer konstanten Rate streamen (und wie würde ich die Übertragungsrate innerhalb der App begrenzen?)

Alle und alle Vorschläge sind willkommen.

Dank

Antwort

11

Ich habe mit Apple-Entwickler-Support gesprochen, und nur FYI. Sie dürfen nur 1 MB pro Minute über das Mobilfunknetz streamen. Der Support schlägt vor, dass Sie Ihre App wie folgt testen:

"Die grundlegende Messmethode besteht darin, alle Hintergrundaktualisierungen (insbesondere die automatischen Mail-Downloads und Kalenderaktualisierungen) abzuschalten und die Übertragungsstatistiken unter" Einstellungen: Allgemein: Verwendung : ", und starten Sie dann Ihre Anwendung. Lassen Sie es für eine bestimmte Zeit laufen (fünf Minuten ist sinnvoll), und beenden Sie Ihre Anwendung. Sobald Sie den Test beendet haben, die Zahlen unter" Cellular Network Data "in" Einstellungen: Allgemein: Verwendung: "sollten Sie sich auf das Reduzieren konzentrieren.

Mit dem, was ich gerade beschrieben habe, würde ich 4,8 MB alle 5 Minuten vorschlagen, um sicherzustellen, dass Ihre Anwendung innerhalb unserer Bandbreitenanforderungen bleibt."

Hoffe, dass hilft zumindest ein wenig.

+0

Dies ist die hilfreichste Antwort noch ... Danke. Wir schlagen jetzt genau (zufällig) 4,8 MB pro 5 Minuten. –

+0

Haben wir weitere aktuelle Informationen zu diesem Thema? – Jonny

+0

Was möchten Sie sonst noch wissen? – postalservice14

0

Auf einer ernsteren Note, was versucht wird, es zu tun? Es gibt viele Märkte für iPhone außerhalb der USA, die keine guten Download-Raten für Handys haben, und auch die Download-Cap-Größen sind nicht gut, also ist es keine gute Sache, eine App zu haben, die viel herunterlädt.

Könnten Sie möglicherweise die Datenrate auf Ihrem MP3 oder so etwas fallen lassen? Machen Sie das Herunterladen optional mit der Warnung, dass es Ihren Download nutzen wird?

+0

Ich stimme zu, dass wir mehr auf das Bandbreitenproblem achten sollten ... aber da youtube, Pandora und viele andere Streaming-Apps damit gekauft werden, habe ich einfach nicht gedacht, dass wir abgelehnt werden. Es ist wahr .. wenn jeder Entwickler das Netzwerk überwältigt ... wird die Nutzung anderer Dienste wie Surfen im Internet leiden. Deshalb suche ich nach einem verantwortungsvollen Weg, dies zu tun und trotzdem dem Benutzer eine gute Erfahrung zu geben. –

6

Haben Sie HTTP-Live-Streaming in Betracht gezogen? Es ist in OS 3.0 integriert.

Im Grunde teilen Sie Ihre Medien in kleine (z. B. 10 Sekunden) Schnipsel und legen Sie sie auf einen Standard-Webserver. Dann erstellen Sie kleine Text- "Meta-Deskriptor" -Dateien im EXTM3U-Format, die aufzeigen, wo sich die Bits befinden. Das Interessante ist, dass Sie mehrere Versionen von jedes Snippet mit unterschiedlichen Bitraten erstellen können. Wenn Ihre Bandbreite also gut ist, wählt der iPhone-Player dynamisch die höheren Bitraten aus. Wenn er jedoch niedrig ist, schaltet er automatisch auf die niedrigere Bitratenversion des Snippets um. Es macht dies im laufenden Betrieb, um sich an veränderte Bedingungen anzupassen.

Also wenn Sie Ihre MP3 in mehrere 10-Sekunden-Bits bei sagen, 3 verschiedene Bitraten teilen, dann wenn der Benutzer über WiFi verbunden ist, bekommen sie die qualitativ hochwertigen Sachen, aber wenn sie auf 3G oder EDGE sind, bekommen sie progressiv minderwertiger (und kleinerer) Inhalt.

Wenn dies gegen das Konzept der herunterladbaren Medien verstößt, können Sie möglicherweise denselben Trick anwenden und mehrere Dateigrößen für jeden Verbindungstyp beibehalten. Dann, wenn Sie auf WiFi sind (oder einen schnellen Turnaround bei einem Heartbeat-Ping zum Server erhalten), laden Sie die große Datei vs. mittlere oder kleine Größe herunter.

Here's a decent step-by-step auf segmentierenden Inhalt. Sie konzentrieren sich auf Video, aber es sollte auch mit Audio-Inhalten arbeiten.

+0

Ihr erster Vorschlag, die Dateien zu segmentieren, scheint eine Menge Arbeit zu sein, aber vielleicht müssen wir so vorgehen. Die Dateien sind ungefähr 30 Minuten lang, also wären es 180 Dateien. Wir spielen die Dateien in unserem eigenen Player, ohne dass der Benutzer die App verlässt. Wäre das noch eine Option mit 3.0 HTTP Live Streaming? Es wäre so viel einfacher von Apple gab den Entwicklern einige Benchmark. –

+0

Step-Downs der Inhaltsqualität klingt wie eine brillante Idee, wie Sie von Wifi zu 3g zu GPRS bewegen ... – Spence

+0

Die in diesem Artikel aufgeführten Tools verknüpfte ich automatisch für die Segmentierung und Playlist-Erstellung für Sie. Bisher habe ich nur mit Videodateien gespielt, aber Audio soll auch funktionieren. Der Streaming-Client ist im Wesentlichen der einbettbare Video-Player. Wenn es um Videoinhalte geht, wird es im Vollbildmodus angezeigt, ist aber immer noch eingebettet (d. H. Sie verlassen Ihre App während der Wiedergabe nicht). Da es sich um ein offiziell genehmigtes Framework handelt, haben Sie möglicherweise mehr Glück, wenn Sie Ihre App durchstellen. – Ramin

0

Sie können die mp3 nicht herunterladen, außer Sie sind drahtlos und informieren sie darüber. Wenn dir die mp3 zu wichtig sind, dann sag ihnen einfach, dass es nur auf WLAN funktioniert, oder ein paar mp3 auf das Gerät einbinden. Aber 30min von mp3 ist lächerlich, das ist was, 30meg .... denke darüber nach, 30 Meg ist einfach zu viel.

+0

Die Dateien, die den Kern der App bilden, sind von 5 MB bis 16,7 MB groß. Was ist nicht lächerlich. –

1

Ich würde vorschlagen, die Bandbreite auf dem Netzwerk/http-Anfrage Drosselung auf Wifi, wenn verbunden mit Mobilfunk und drosseln.

Eine Kombination von Erreichbarkeit, um den Netzwerkstatus zu erkennen, und implementieren Sie Ihre HTTP-Anfrage mit CFNetwork mit einem Schlaf bis zur nächsten Sekunde, wenn Sie bereits so viel wie erlaubt pro Sekunde heruntergeladen haben, sollten Sie dort.

Sie sollen dieses Projekt überprüfen, entweder zu verwenden, oder einfach nur ein Beispiel zu sehen, wie diese gut kodieren:

http://allseeing-i.com/ASIHTTPRequest

Die ASIHTTPRequest Klasse dies implementiert, entweder die alte oder 2.0-Version verwenden Erreichbarkeit, und bietet auch eine Drosselung auf Klassenebene, so dass selbst wenn Sie mehrere gleichzeitige Downloads und Uploads haben, solange sie alle über ASIHTTPRequest gehen, werden sie richtig zusammen genommen und richtig gedrosselt.

Ein bisschen mehr darüber, wie diese hier verwenden: http://allseeing-i.com/ASIHTTPRequest/How-to-use#bandwidth_throttling

Viele gute Sachen in diesem (und nein, ich bin nicht der Autor von irgendetwas davon).

+0

Ich habe genau das getan. Aber ich habe die Datenübertragungsrate bei nachfolgenden Updates erhöht, ohne bestraft zu werden (bisher) –

+0

Sehr interessant. Wir haben den Test auch mit dem Gaspedal bestanden - ich muss sehen, dass das Gaslimit nach oben kriecht ... –

Verwandte Themen