Вопрос о потоковой передаче мультимедиа в Android - PullRequest
1 голос
/ 18 марта 2011

В настоящее время я разрабатываю приложение, которое использует метод Android MediaPlayer setDataSource (url) для воспроизведения потоков SHOUTCast. Я нахожусь в процессе переключения текущего кода с использованием метода setDataSource (url) на setDataSource (file), где file в добавочной загрузке файла, который я пропариваю. Аналогично этому уроку:

http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/

Мой вопрос такой:

Этот метод будет хорошо работать для файлов фиксированной длины, потому что после завершения потока файл можно удалить (т. Е. Я передаю mp3-файл, а когда песня заканчивается, я удаляю старый временный файл перед созданием нового). Однако, если я играю поток SHOUTcast, который технически никогда не «заканчивается», как я могу предотвратить заполнение памяти телефона из-за постоянно увеличивающегося размера временного файла?

1 Ответ

0 голосов
/ 18 марта 2011

У меня нет опыта потоковой передачи с MediaPlayer, но я думаю, что это решение может работать:

Используйте два файла. Когда один из них достигнет порогового размера, начните загрузку потока в оба файла. Когда во втором файле достаточно буфера, начните потоковую передачу со второго файла и удалите первый. Меняйте местами столько, сколько вам нужно.

...