任何人都可以用 ac# xamarin 代码示例帮助我如何将 LibVLC VideoView 作为 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#