【问题标题】:Vlc player black screen on Xamarin.FormsXamarin.Forms 上的 Vlc 播放器黑屏
【发布时间】:2021-12-20 07:20:02
【问题描述】:

视频正常播放,但如果你打开另一个应用程序并返回,vlc 将显示黑屏,只有声音。 (Android 8.0.0,nuget 包的最新版本)

LibVLC libVLC = new LibVLC("--preferred-resolution=-1", " --log-verbose=3", "--no-gnutls-system-trust");
MediaPlayer mediaPlayer;
Media media = new Media(libVLC, playerUrl, FromType.FromLocation);
VideoView1.MediaPlayer = mediaPlayer;
mediaPlayer.Play();

【问题讨论】:

  • 当你回到你的应用程序时,相同的代码会再次执行吗?如果是这样,您已经启动了第二个媒体播放器,但没有告诉第一个停止。第一个(您不再看到)仍然有视频。我不熟悉媒体播放器,但基本概念是在您的 Xamarin.Android 项目的应用程序(或者可能是 mainactivity)的 OnPause 中,您需要“清理”活动资源(停止视频,也可能是 Dispose),然后保存信息(可能在一个 Bundle 中)告诉您的应用它处于什么“状态”。如果您想在 OnCreate 或 OnResume 中返回到视频中的相同位置。
  • @ToolmakerSteve,不,媒体播放器在您单击元素时创建一次。是的,创建一个新的媒体播放器可能会有所帮助,但这是一个非常糟糕的主意。谢谢您的回复
  • 我并不是建议您创建一个新的媒体播放器。相反,我是询问,如果您对代码进行断点,该代码是否会在返回应用程序时再次执行。 (如果确实如此,那么将创建一个新玩家,因此您需要执行我建议的操作。)如果没有,那就太好了。无论如何,症状表明离开应用程序并返回它会导致媒体播放器处于错误状态。修复必须涉及当您的应用进入后台时“做某事”,然后当它恢复时“做其他事情”。
  • 可能是因为应用程序恢复时“表面”发生了变化。可能会调查android级别的讨论,例如stackoverflow.com/q/6347924/199364
  • 有人声称它适用于 android 媒体播放器。不知道这是否适用于vlc:stackoverflow.com/a/34854913/199364

标签: c# xamarin xamarin.forms vlc libvlcsharp


【解决方案1】:

在 Android 上,由于操作系统的工作方式,后台支持需要一些仪式。简而言之,这意味着您需要重新创建一个 VideoView 并在其上设置您现有的 MediaPlayer 以在从后台返回时让视频正常工作。

可通过https://code.videolan.org/mfkl/libvlcsharp-samples/-/tree/master/ForegroundBackground提供示例演示

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-19
    • 2012-06-23
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多