Как сохранить поток RTSP открытым при передаче MediaPlayer между VideoViews - PullRequest
0 голосов
/ 14 апреля 2020

Открытие потока RTSP занимает несколько секунд. Можно ли «передать» открытый MediaPlayer (или Media?) Из VideoView1 в VideoView2?

Когда я делаю это без остановки (или с паузой), он не может получить вывод: Код:

//_mediaPlayer.Stop(); // stopping restart rtsp decoding on play

_videoView.MediaPlayer = null;
mainLayout.RemoveView(_videoView);

_videoView.Dispose();

_videoView = new VideoView(this) { MediaPlayer = _mediaPlayer };
mainLayout.AddView(_videoView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));

//_videoView.MediaPlayer.Play();
04-14 17:16:10.504 E/EGL_emulation( 4527): tid 4573: swapBuffers(498): error 0x300d (EGL_BAD_SURFACE)
04-14 17:16:10.537 D/EGL_emulation( 4527): eglMakeCurrent: 0x8804f800: ver 2 0 (tinfo 0x847ad330)
04-14 17:16:10.545 D/EGL_emulation( 4527): eglMakeCurrent: 0x8804f800: ver 2 0 (tinfo 0x847ad330)
04-14 17:16:10.546 E/EGL_emulation( 4527): egl_window_surface_t::swapBuffers called with NULL buffer
04-14 17:16:10.546 E/EGL_emulation( 4527): tid 4573: swapBuffers(498): error 0x300d (EGL_BAD_SURFACE)

Когда я останавливаю MediaPlayer, создайте новый VideoView с этим MediaPlayer и затем воспроизведите - он снова открывается. Есть ли возможность сделать это без остановки / игры?

...