Главное просто остановить воспроизведение.

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

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

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

КЛАСС | МЕТОД | ФАЙЛ | ЛИНИЯ | РОДНЫЕ

android.media.MediaPlayer _release MediaPlayer.java -2 true
android.media.MediaPlayer релиз MediaPlayer.java 1049 ложь

 Judy25 авг. 2017 г., 10:36
У меня тоже есть эта проблема. Есть ли решение, чтобы это исправить?
 Jona05 сент. 2017 г., 17:24
@ Джуди, мы никогда не нашли решения. Мы перепробовали много комбинаций и хаков. Мы наконец отошли от использования медиа-API высшего уровня Android. Не рекомендуется для всех, но в нашем случае нам нужен был полный контроль над воспроизведением, поэтому мы собираем плеер с нуля.

Ответы на вопрос(4)

при вызове 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

я настоятельно рекомендую вам бросить дрянной MediaPlayer и использоватьExoplayer от гугла.

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

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

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

mediaplayer.seekTo(0);

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

 Jona17 июл. 2013 г., 14:32
Главное просто остановить воспроизведение.
Решение Вопроса

http://code.google.com/p/android/issues/detail?id=959, Он просидел какое-то время, и я не ожидал, что к нему скоро будут обращены, к сожалению.

 Jona18 авг. 2011 г., 17:07
Спасибо, я думаю, что это так близко к ответу ... по крайней мере пока ...

Ваш ответ на вопрос