Ошибка Android MediaPlayer при использовании вызовов reset () и release () - PullRequest
23 голосов
/ 20 января 2011

Ошибка, которую я вижу, заключается в том, что вызовы reset () и release () никогда не возвращаются, поэтому мое приложение остается в состоянии остановки на неопределенный срок.Не имеет значения, если я вызову stop () перед reset () или release (), всегда можно воспроизвести зависание.

Кто-нибудь испытывал подобные проблемы с блокировкой MediaPlayer?Какие-нибудь советы?Я работаю над многопоточным приложением.

DDMS сообщает следующее при просмотре потоков, которые удерживают:

CLASS |МЕТОД |ФАЙЛ |ЛИНИЯ |NATIVE

android.media.MediaPlayer _release MediaPlayer.java -2 true
android.media.MediaPlayer релиз MediaPlayer.java 1049 false

Ответы [ 4 ]

8 голосов
/ 12 мая 2011

Возможно, вы наткнулись на эту ошибку: http://code.google.com/p/android/issues/detail?id=959. Это уже давно, к сожалению, я не ожидаю, что это будет исправлено в ближайшее время.

1 голос
/ 19 сентября 2014

Если вы разрабатываете для API уровня 16 или выше, я настоятельно рекомендую вам бросить дерьмовый MediaPlayer и использовать Exoplayer от Google.

Я так и не оглянулся.Так как я также поддерживаю уровень API 15, у меня есть абстракция для использования стандартного MediaPlayer, когда в этом API и Exoplayer, когда в 16 (или 17 сейчас не помню).

Это не идеально, но это многолучше, и я видел намного лучшую буферизацию.

0 голосов
/ 15 апреля 2012

Если вы просто пытаетесь запустить песню / звук с самого начала, вы можете написать функцию сброса, которая просто делает:

mediaplayer.seekTo(0);

Я изменил свой stop(); to: пауза, затем searchTo.

0 голосов
/ 15 декабря 2011

Я также сталкиваюсь с этой проблемой в Android 2.2, когда вызываю MediaRecorder.release ();

Иногда он не отвечает, мой поток программ просто застревает на нем.это приводит к зависанию моего пользовательского интерфейса и приводит к ANR позже ....

Кстати, мой клиент говорит, что они не сталкивались с этим при использовании Android 2.3.3

Это: http://code.google.com/p/android/issues/detail?id=959#makechanges

А это: http://code.google.com/p/android/issues/detail?id=5047#makechanges

...