2009-08-06 14 views
7

Nuestra adorable aplicación que descarga archivos mp3 desde nuestro servidor a un archivo local en el teléfono y luego reproduce desde ese archivo fue rechazada por usar demasiado ancho de banda.Aplicación para iPhone rechazada por "transferencia de volúmenes excesivos de datos"

Entiendo el rechazo (estamos descargando en lugar de la transmisión) y no objetamos su decisión ... nuestra primera prioridad fue la calidad de la experiencia del usuario.

Me pregunto ... ¿qué hago ahora?

No hay reglas duras y rápidas ... Apple solo dice: "No debe, según el juicio razonable de Apple, el uso excesivo o la carga excesiva de la capacidad de red o el ancho de banda".

¿Alguien tiene datos sobre lo que Apple considera tasas razonables de transferencia de datos?

¿Debo completar el archivo del búfer en breves momentos? Debería transmitir el archivo a una velocidad constante (y cómo limitaría la velocidad de transferencia desde la aplicación?)

Todas y cada una de las sugerencias son bienvenidas.

Gracias

Respuesta

11

He hablado con el soporte para desarrolladores de Apple, y solo para su información. Solo se le permite transmitir 1 MB por minuto a través de la red celular. El soporte sugiere que pruebe su aplicación de la siguiente manera:

"La metodología de medición básica es desactivar todas las actualizaciones de fondo (particularmente las descargas automáticas de correo y las actualizaciones de calendario), restablecer las estadísticas de transferencia en" Configuración: General: Uso : ", y luego inicie su aplicación. Deje que se ejecute durante un tiempo fijo (cinco minutos es razonable) y luego salga de la aplicación. Una vez que haya finalizado la prueba, los números se enumeran en" Datos de red celular "en" Configuración: General: Uso: "es lo que debe enfocarse en reducir.

Usando lo que acabo de describir, sugeriría 4.8 MB cada 5 minutos como la guía que utiliza para asegurar que su aplicación cumpla con nuestros requisitos de ancho de banda".

Espero que ayude al menos un poco.

+0

Esta es la respuesta más útil hasta el momento ... Gracias. Ahora estamos alcanzando exactamente 4.8 mb por 5 minutos (coincidentemente). –

+0

¿Tenemos más información actualizada sobre esto? – Jonny

+0

¿Qué más quieres saber? – postalservice14

0

En una nota más seria, lo que se intenta hacer? Hay muchos mercados para iPhone fuera de los EE. UU. Que no tienen buenas tasas de descarga para los teléfonos, y los tamaños de las tapas de descarga no son buenos, por lo que tener una aplicación para hacer muchas descargas no es algo bueno.

¿Podría posiblemente bajar la velocidad de datos en su mp3 o algo así? ¿Es opcional realizar la descarga con una advertencia de que usará la descarga?

+0

Estoy de acuerdo en que deberíamos haber estado más conscientes del problema del ancho de banda ... pero viendo que youTube, Pandora y una serie de otras aplicaciones de transmisión compran, simplemente no consideré que sería rechazado porque si. Es verdad ... si todos los desarrolladores abruman a la red ... el uso de otros servicios como la navegación web sufrirá. Es por eso que estoy buscando una forma responsable de hacer esto y aun así darle al usuario una buena experiencia. –

6

¿Ha considerado HTTP Live Streaming? Está integrado en OS 3.0.

Básicamente, divide los medios en pequeños fragmentos (por ejemplo, 10 segundos) y los coloca en un servidor web estándar. A continuación, crea pequeños archivos de texto 'meta-descriptor' en formato EXTM3U que señalan dónde están los bits. Lo interesante es que puede crear múltiples versiones de cada fragmento a diferentes velocidades de bits. Entonces, si su ancho de banda es bueno, el reproductor de iPhone elige dinámicamente las tasas de bits más altas, pero cuando es bajo, cambia automáticamente a la versión de menor velocidad de bits del fragmento. Lo hace sobre la marcha para adaptarse a las condiciones cambiantes.

Así que si divides tu MP3 en múltiples bits de 10 segundos, por ejemplo, 3 velocidades de bits diferentes, cuando el usuario está conectado a través de WiFi obtienen las cosas de alta calidad, pero si están en 3G o EDGE obtienen contenido progresivamente de menor calidad (y de menor tamaño).

Si esto viola su concepto de medios descargables, entonces quizás pueda usar el mismo truco y conservar archivos de varios tamaños para cada tipo de conexión. Luego, si tiene WiFi (o obtiene un cambio rápido en un latido del corazón al servidor), descargue el archivo grande contra los de tamaño mediano o pequeño.

Here's a decent step-by-step sobre la segmentación de contenido. Se enfocan en el video, pero también debería funcionar con contenido de audio.

+0

Su primera sugerencia para segmentar los archivos parece mucho trabajo, pero quizás esa sea la forma en que tenemos que ir. Los archivos duran unos 30 minutos, por lo que serían 180 archivos cada uno. Jugamos los archivos en nuestro propio reproductor sin que el usuario salga de la aplicación. ¿Sería eso una opción con 3.0 HTTP Live Streaming? Sería mucho más fácil de Apple le dio a los desarrolladores algunos puntos de referencia. –

+0

Los pasos descendentes de la calidad del contenido suenan como una idea brillante al pasar de wifi a 3g a gprs ... – Spence

+0

Las herramientas enumeradas en el artículo que he vinculado crean automáticamente la segmentación y la creación de la lista de reproducción para usted. Hasta ahora solo he jugado con archivos de video, pero se supone que el audio también debería funcionar. El cliente de transmisión es esencialmente el reproductor de video incrustable. Cuando se trata de contenido de video, va a pantalla completa, pero aún está incorporado (es decir, no sale de su aplicación durante la reproducción). Dado que se trata de un marco sancionado oficialmente, es posible que tengas más suerte al ejecutar tu aplicación. – Ramin

0

No pudo descargar el mp3 a menos que esté en modo inalámbrico, e informarles de eso. Si el mp3 es demasiado importante, solo dígales que solo funciona en la red inalámbrica o incluya algunos mp3 en el dispositivo. Pero 30min de mp3 es ridículo, eso es sobre qué, 30meg ... piénsalo, 30 meg es demasiado.

+0

Los archivos, que son el núcleo de la aplicación, tienen un tamaño de 5Mb a 16.7Mb. Lo cual no es ridículo. –

1

Sugeriría estrangular el ancho de banda en la solicitud de red/http cuando esté conectado a una red celular, y no tener acelerador en wifi.

Una combinación de usar Reachability para detectar el estado de la red e implementar su solicitud http usando CFNetwork con un sleep hasta el próximo segundo cada vez que haya descargado tanto como sea permitido por segundo debería llevarlo allí.

Debe comprobar a cabo este proyecto, ya sea para usar, o simplemente para ver un ejemplo de cómo codificar bien:

http://allseeing-i.com/ASIHTTPRequest

La clase ASIHTTPRequest implementa esto, utilizando el antiguo o 2.0 versión de Accesibilidad, y también proporciona un acelerador de nivel de clase, por lo que incluso si tiene varias descargas y cargas simultáneas, siempre que todas ellas pasen por ASIHTTPRequest, se tomarán juntas correctamente y se estrangularán correctamente.

Un poco más acerca de cómo utilizar esto aquí: http://allseeing-i.com/ASIHTTPRequest/How-to-use#bandwidth_throttling

montón de cosas buenas en esto (y no, no soy el autor de cualquiera de ella).

+0

Terminé haciendo exactamente eso. Pero he aumentado la velocidad de transferencia de datos en actualizaciones posteriores sin haber sido penalizado (hasta ahora) –

+0

Muy interesante. Pasamos por la revisión con el acelerador añadido también. Tendré que ver si sigo aumentando el límite del acelerador ... –

Cuestiones relacionadas