Кто-нибудь может мне помочь с примером кода ac # xamarin, как включить в макет в качестве элемента управления VideoView элемент управления LibVLC VideoView? Я хочу показать короткое видео, а затем, после его завершения, вернуться к основному макету. Мне удалось включить проигрыватель VLC в мой проект (спасибо http://xamaringuyshow.com/2019/08/23/xamarin-forms-vlc-video-payer/), но я хочу воспроизвести видео в отдельном макете и вернуться после завершения клипа.
Когда клипготово (но у медиаплеера нет кнопок управления - для поиска видео, для приостановки или воспроизведения - другая проблема ...), и я пытаюсь продолжить работу с основным потоком моего приложения, я получаю "Толькоисходная нить, которая создала иерархию представлений, может коснуться ошибки "ее представления", и приложение аварийно завершено.
Это часть моего кода с LibVLC:
public void ReplayVideoVLC(string link)
{
mainActivity.SetContentView(App3.Resource.Layout.VideoFullScreen);
_libVLC = new LibVLC();
_mediaPlayer = new MediaPlayer(_libVLC)
{
EnableHardwareDecoding = true
};
_videoView = new LibVLCSharp.Platforms.Android.VideoView(mainActivity) { MediaPlayer = _mediaPlayer };
mainActivity.AddContentView(_videoView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
var media = new Media(_libVLC, link, FromType.FromLocation);
Core.Initialize();
_videoView.SetZOrderOnTop(true);
_videoView.MediaPlayer.Stopped += MediaPlayer_Stopped;
_videoView.MediaPlayer.EncounteredError += MediaPlayer_EncounteredError;
video_error = false;
vlc_video_playing = true;
try
{
_videoView.MediaPlayer.Play(media);
}
catch (Exception exx)
{
exx = exx;
vlc_video_playing = false;
}
}
private void MediaPlayer_EncounteredError(object sender, EventArgs e)
{
//error on VLC replay...
video_error = true;
Xamarin.Forms.Device.OpenUri(new Uri(client.current_video_url));
vlc_video_playing = false;
}
private void MediaPlayer_Stopped(object sender, EventArgs e)
{
try
{
_videoView.MediaPlayer = null;
_videoView = null;
}
catch (Exception exx)
{
//exx = exx;
}
if (!video_error)
{
mainActivity.ContinueGame();
}
else
{
Xamarin.Forms.Device.OpenUri(new Uri(client.current_video_url));
}
vlc_video_playing = false;
}
```c#