Потоковое воспроизведение и воспроизведение потока MP3. .mp3 формат URL - PullRequest
0 голосов
/ 17 января 2010

Я использовал пример кода из http://cocoawithlove.com/2008/09/streaming-and-playing-live-mp3-stream.html., он работает нормально с URL-адресом по умолчанию. Но когда я заменяю своим URL-адресом «http://dl.mp3.kapsule.info/fsfsdfdsfdserwrwq3/fc90613208cc3f16ae6d6ba05d21880c/4b5244f0/b/7e/b7e80afa18d06fdd3dd9f9fa44b51fc0.mp3?filename=Every-Day-I-Love-You.mp3",», это приложение отображает сообщение «Аудио не найдено». Но когда я помещаю свой URL-адрес в адресную строку веб-браузера, я могу загрузить этот файл .mp3.

правда, я не могу понять, почему это так?

приятно, скажите мне!

Большое спасибо

Ответы [ 4 ]

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

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

Я думаю, вы можете в этом убедиться, попробовав другую радиостанцию, которая передает в формате MP3. Если это работает, скорее всего, вашему приложению не нравится ваш файл.

Вам следует, как рекомендует Vivek, также попытаться использовать более простой URL-адрес для загрузки файла, если приложение запутается из-за длины и / или структуры URL.

1 голос
/ 09 июля 2010

Как уже упоминалось, это связано с URL файла. Код AudioStreamer специально проверяет расширение файла и пытается выяснить тип аудио на основании этого. Если вы измените эту логику для обработки своих пользовательских URL, она начнет работать

Чтобы указать вам правильное направление: откройте AudioStreamer.m и найдите ссылки на

hintForFileExtension:

Эта функция возвращает тип файла на основе расширения. Если вы знаете, что тип файла не изменится (всегда mp3), быстрое и грязное решение состоит в том, чтобы всегда назначать тип mp3 без какой-либо логики ... как это:

err = AudioFileStreamOpen(self, MyPropertyListenerProc, MyPacketsProc, kAudioFileMP3Type, &audioFileStream);

Примечание: я поместил константу kAudioFileMP3Type вместо вычисленного значения

PS Да, он работает со статическими mp3-файлами, даже если он предназначен для потоков и поэтому пропускает некоторые функции, которые можно ожидать от проигрывателя, который воспроизводит статический файл на сервере (кэширование, предварительная выборка, правильный поиск)

0 голосов
/ 10 июля 2010

Я подозреваю, что ваш URL-адрес используется только один раз. Когда я пытаюсь посетить его, я вижу 408 - Request Timeout.

Многие ссылки на массовых файлообменниках похожи на это. Если бы вы могли загрузить файл напрямую, вы бы не сидели на странице объявлений и предложений премиум-аккаунта.

Попробуйте еще раз с файлом на обычном веб-сайте, например этот .

0 голосов
/ 17 января 2010

Это потому, что URL-адрес по умолчанию напрямую указывает на файл в веб-сервере, тогда как упомянутый вами URL-адрес является операцией HTTP (POST / GET), которую приложение может не обрабатывать.

...