Может кто использовал библиотеку libvlc. Проблема в том что когда пытаюсь уничтожить объект класса MediaPlayer то все напрочь зависает минуты на две, после чего объект уничтожается. Инициализирую плеер следующим образом:
private void play(SurfaceTexture surfaceTexture) {
final ArrayList<String> args = new ArrayList<>();
libVLC = new LibVLC(context, args);
mediaPlayer = new MediaPlayer(libVLC);
mediaPlayer.setEventListener(eventListener);
vlcVout = mediaPlayer.getVLCVout();
vlcVout.setVideoSurface(surfaceTexture);
Media media = new Media(libVLC, Uri.parse(url));
media.setHWDecoderEnabled(true, true);
mediaPlayer.setMedia(media);
media.release();
vlcVout.attachViews();
mediaPlayer.play();
}
Пытаюсь уничтожить следующим образом
public void release() {
if (mediaPlayer != null && libVLC != null) {
pause();
libVLC.release();
libVLC = null;
mediaPlayer.setEventListener(null);
mediaPlayer.release();
mediaPlayer = null;
}
}
Здесь начинаются проблемы на строчке mediaPlayer.release(); Может кто встречался с такой проблемой и знает как решить?
Проблема оказалась в либе, использовал версию 2.0.6. вот здесь есть обсуждение по этому поводу https://github.com/mrmaffen/vlc-android-sdk/issues/74 . Я в итоге стал использовать версию 1.9.8 и все прошло.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей