SetVideoSurfaceTexture не удалось: -22 в медиаплеере

Я пытаюсь воспроизвести несколько видео в цикле с помощью MediaPlayer (Android ICS) и менять видео каждый раз при вызове oncompletion ().

Он отлично работает, но после случайного времени приложение замерзает, и я получаю сообщение об ошибке:

[SurfaceView] connect: уже подключено (cur = 3, req = 3) setVideoSurfaceTexture не удалось: -22

Когда эта ошибка возникает, внутренне она вызывает сброс игрока

Ref: mediaplayer.cpp

if (err != OK) { LOGE("setVideoSurfaceTexture failed: %d", err); // Note that we must do the reset before disconnecting from the ANW. // Otherwise queue/dequeue calls could be made on the disconnected // ANW, which may result in errors. reset(); disconnectNativeWindow(); return err; } 

По моему коду я получаю уведомление для onprepared () и начинаю играть.

На самом деле нет никакого воспроизведения из-за этой ошибки.

Поэтому я пытаюсь перезагрузить mediaplayer и вызвать prepare (), когда эта проблема возникла, и медиаплеер не играет, но я не могу зафиксировать эту ошибку (mp.isPlaying () -> true (bec'z, называемый start () в onprepared ()).

Я пробую логику, как

 onprepared() { mp.start(); if (pbm : [SurfaceView] connect : already connected (cur=3, req=3) setVideoSurfaceTexture failed : -22 ) { reset the mediaplayer source and call prepare } } 

Как я могу найти эту ошибку, чтобы снова перезапустить медиаплеер?

Мы можем избежать этой проблемы следующим образом …

  mediaPlayer.setDisplay(null); mediaPlayer.reset(); 

После этого снова установите поверхностный держатель перед запуском медиаплеера

  mediaPlayer.setDisplay(surfaceHolder1); mediaPlayer.start(); in onprepared notification. 
Intereting Posts
Фоновый процесс кеша Android постоянно растет Платформа Cordova добавляет странную проблему Android Устройство Android (за исключением примечания 2 галактики) не может получить UDP-пакеты Указатель курсора за пределами границ "индекс 0 запрошен: с размером 0" Как запрашивать события календаря Android для определенного диапазона дат? C # DateTime для строки Приложение уже развернуто. Нет необходимости переустанавливать Ошибка сокета для идентификатора клиента в брокере RSMB MQTT при использовании android Безопасно перезагрузить MediaPlayer при подготовке состояния? Отправка почты через Implicit Intent с использованием Gmail с изображением в качестве приложения в Android? Проверить, чтобы приложение Twitter было зарегистрировано на Android Как получить контактное имя с его номером Задайте пункт меню, как отмечено из кода SmsManager.sendTextMessage не работает Обтекание текста вокруг изображения в андроиде