BackgroundAudioPlayer - Буферизация и MediaStreamSource - PullRequest
0 голосов
/ 01 февраля 2012

Я создал MediaStreamSource для декодирования живого интернет-аудиопотока и передачи его в BackgroundAudioPlayer.Теперь это работает очень хорошо на устройстве.Однако сейчас я хотел бы реализовать некоторую форму управления буферизацией.В настоящее время все работает хорошо по WLAN - однако я боюсь, что в реальных ситуациях по сетям операторов мобильной связи будет много сокращения в потоке.Я хотел бы узнать, есть ли у кого-нибудь совет о том, как лучше всего реализовать буферизацию.

  • Создает ли сам фоновый аудиопроигрыватель какой-то буфер, прежде чем он начнет играть иЕсли это так, можно ли увеличить размер этого при необходимости?

  • Есть ли что-то, что я могу установить во время выборки, чтобы помочь с буферизацией, или мне просто нужно реализовать своего рода буфер хранения, так как яИзвлеките поток из сети и создайте в нем существенный резерв перед выборкой.

Какой подход другие предприняли для решения этой проблемы?Спасибо, Брайан

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Один из подходов к этому, который я видел, состоит в том, чтобы иметь два процесса, управляющих потоком.Первый получает поток и записывает его в последовательность последовательно пронумерованных файлов в изолированном хранилище.Вторая читает файлы и воспроизводит их.
Очевидно, что это очень упрощенное описание, но, надеюсь, вы поняли идею.

0 голосов
/ 03 февраля 2012

Я не знаю, как это может повлиять на использование MediaStreamSource, но по опыту работы с простым агентом фонового аудиоплеера, работающего с потоками напрямую из удаленных файлов MP3 или потокового радио MP3:

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

Реализация предложения в ответе Мэтта решает эту проблему, позволяя вамвзять под контроль буферизацию и аккуратно разделяет загрузку и воспроизведение.

...