Действие паузы в MediaPlayer()

Я использую MediaPlayer для потоковой передачи аудио с URL-адреса.

Согласно документации, вызов MediaPlayer pause, за которым следует play, возобновится с точки, где она была приостановлена.

Мне интересно, как это работает с потоком аудио в реальном времени. Когда я вызываю pause, это MediaPlayer создает какой-то буфер всех входящих данных и сохраняет его, пока я не вызову play еще раз?

Если это действительно так, есть ли максимальный размер в этом буфере? Я в основном обеспокоен тем, что пользователь приостанавливает MediaPlayer, и он использует много памяти, пока он хранит входящие аудиоданные.

Ответ 1

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

Но потоковая передача не должна вести себя таким образом, в отличие от сохраненного звука, который начинается с момента его приостановки. Потоковое аудио всегда должно начинаться с прямой трансляции в этой точке. Итак, onPause, вы должны освободить буферы. Когда пользователь снова возобновит работу, вы можете перезапустить поток так, как вы это делали в первый раз. Так должно быть поведение.

Если вы посмотрите, обычная потоковая передача радиопередач реализована в большинстве приложений для радиопотока.