Приложение для iPhone отклонено за «передачу чрезмерных объемов данных» - PullRequest
7 голосов
/ 06 августа 2009

Наше прекрасное приложение, которое загружает mp3-файлы с нашего сервера в локальный файл на телефоне, а затем воспроизводит их, было отклонено из-за слишком большой полосы пропускания.

Я понимаю отклонение (мы загружаем, а не транслируем) и не спорю с их решением ... нашим главным приоритетом было качество взаимодействия с пользователем.

Мне просто интересно ... что мне теперь делать?

Не существует жестких и быстрых правил ... Apple просто говорит: «Не должно быть по разумному мнению Apple чрезмерное использование или чрезмерное обременение емкости или пропускной способности сети».

У кого-нибудь есть данные о том, что Apple считает разумной скоростью передачи данных?

Должен ли я заполнить буферный файл короткими скачками? Следует ли передавать файл с постоянной скоростью (и как бы я ограничил скорость передачи из приложения?)

Любые предложения приветствуются.

Спасибо

Ответы [ 6 ]

11 голосов
/ 13 августа 2009

Я разговаривал со службой поддержки разработчиков Apple, и только с вашей стороны. Вам разрешено передавать только 1 МБ в минуту через сотовую сеть. Служба поддержки предлагает протестировать ваше приложение следующим образом:

"Основная методология измерения - отключить все фоновые обновления (в частности, автоматическую загрузку почты Mail и обновления календаря), сбросить статистику передачи в" Настройках: Общие: Использование: ", а затем запустить приложение. фиксированный промежуток времени (разумно пять минут), а затем закройте приложение. После завершения теста цифры, перечисленные в разделе «Данные сотовой сети» раздела «Настройки: Общие: Использование:», - это то, на чем вам следует сосредоточиться сокращение.

Используя то, что я только что описал, я бы рекомендовал 4,8 МБ каждые 5 минут в качестве руководства, которое вы используете, чтобы обеспечить соответствие вашего приложения нашим требованиям к пропускной способности. "

Надеюсь, это поможет хоть немного.

10 голосов
/ 06 августа 2009

Iphone app store acceptance flowchart

6 голосов
/ 06 августа 2009

Рассматривали ли вы HTTP Live Streaming? Он встроен в OS 3.0.

По сути, вы разделяете медиафайлы на небольшие (скажем, 10 секунд) фрагменты и помещаете их на стандартный веб-сервер. Затем вы создаете небольшие текстовые файлы мета-дескриптора в формате EXTM3U, которые указывают, где находятся биты. Интересно то, что вы можете создать несколько версий каждого фрагмента с разной скоростью. Таким образом, если ваша пропускная способность хорошая, проигрыватель iPhone динамически выбирает более высокие скорости передачи данных, но когда она низкая, он автоматически переключается на версию сниппета с более низкой скоростью передачи. Он делает это на лету, чтобы адаптироваться к меняющимся условиям.

Таким образом, если вы разделите свой MP3 на несколько 10-секундных битов, скажем, с 3 различными битрейтами, тогда, когда пользователь подключается через Wi-Fi, он получает высококачественный материал, но если он подключен к 3G или EDGE, он постепенно контент низкого качества (и меньшего размера).

Если это нарушает вашу концепцию загружаемых носителей, возможно, вы можете использовать один и тот же прием и сохранить файлы нескольких размеров для каждого типа подключения. Затем, если вы подключены к Wi-Fi (или получите быстрый доступ к серверу), загрузите большой файл по сравнению со средним или маленьким.

Вот неплохой шаг за шагом по сегментации контента. Они сосредоточены на видео, но оно должно работать и с аудиоконтентом.

1 голос
/ 01 января 2010

Я бы предложил регулировать пропускную способность в запросе network / http при подключении к сотовой сети, и при отсутствии Wi-Fi на Wi-Fi.

Комбинация использования Reachability для определения состояния сети и реализации вашего http-запроса с использованием CFNetwork со сном до следующей секунды, когда вы уже загрузили столько, сколько разрешено в секунду, должно привести вас туда.

Вы должны проверить этот проект, либо использовать, либо просто посмотреть пример того, как хорошо это кодировать:

http://allseeing -i.com / ASIHTTPRequest

Класс ASIHTTPRequest реализует это, используя либо старую версию 2.0, либо версию Reachability, а также предоставляет регулятор уровня класса, поэтому даже если у вас есть несколько одновременных загрузок и выгрузок, при условии, что все они проходят через ASIHTTPRequest, они будут быть правильно взятыми вместе и должным образом задушенными.

Еще немного о том, как использовать это здесь: http://allseeing -i.com / ASIHTTPRequest / Как в использовании # bandwidth_throttling

Множество хороших вещей в этом (и нет, я не автор ни одного из них).

0 голосов
/ 06 августа 2009

Вы не можете скачать mp3, если у вас нет беспроводной связи, и сообщить им об этом. Если вам mp3 очень важен, просто скажите им, что он работает только по беспроводной сети, или включите несколько mp3 на устройстве. Но 30 минут mp3 - это смешно, вот о чем, 30мг .... подумайте, 30 мег это слишком много.

0 голосов
/ 06 августа 2009

На более серьезной ноте, что он пытается сделать? За пределами США существует множество рынков для iPhone, которые не имеют хороших показателей загрузки для телефонов, а также не являются хорошими размерами ограничения загрузки, поэтому наличие большого количества загрузок в приложении - это не очень хорошая вещь.

Не могли бы вы снизить скорость передачи данных в mp3 или что-то подобное? Сделать загрузку необязательной с предупреждением, что она будет использовать вашу загрузку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...