You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms 下 Vlc player 切换应用返回后黑屏问题咨询

问题根因

该问题是Android平台生命周期适配问题,应用切后台时系统会销毁视频渲染用的Surface载体,你当前的代码没有处理切后台回前台的渲染恢复逻辑,导致MediaPlayer只有音频输出、没有画面渲染。

解决方案

  • 在宿主Activity的OnPause生命周期回调中调用VideoView1.Suspend(),挂起画面渲染逻辑:
protected override void OnPause()
{
    base.OnPause();
    VideoView1?.Suspend();
}
  • 在宿主Activity的OnResume生命周期回调中调用VideoView1.Resume(),恢复画面渲染,自动重新绑定可用Surface到播放器:
protected override void OnResume()
{
    base.OnResume();
    VideoView1?.Resume();
}
  • 若上述配置后仍有概率复现,可在OnResume中增加手动重绑定MediaPlayer的兜底逻辑:
protected override void OnResume()
{
    base.OnResume();
    if (mediaPlayer != null && mediaPlayer.IsPlaying)
    {
        VideoView1.MediaPlayer = null;
        VideoView1.MediaPlayer = mediaPlayer;
    }
}
  • 可选适配优化:你当前初始化LibVLC时传入的--preferred-resolution=-1代表输出源文件最高分辨率,部分Android 8.0设备对高分辨率视频的Surface恢复支持存在兼容性问题,可尝试修改为--preferred-resolution=1080限制最高输出分辨率,降低兼容性问题出现概率。

内容的提问来源于stack exchange,提问作者Bkkkkkk90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:54:04