C#,没有视频,只有音频,使用多种形式的 VLC,黑屏?

C#, No video, audio only, VLC using multiple forms, Black Screen?

谁能告诉我为什么我的黑屏没有视频,只有声音?

private void screen1btnPlay_Click(object sender, EventArgs e)
    {
        ScreenOne playScreen1 = new ScreenOne();
        playScreen1.PlayScreenOne();
    }

...另一种形式是这样的:

public partial class ScreenOne : Form
{
    public ScreenOne()
    {
        InitializeComponent();
    }


    public void PlayScreenOne()
    {
        axVLCPlugin21.playlist.add("file:///" + @"Filepath", null);
        axVLCPlugin21.playlist.play();
    }




}

声音正常,但没有视频。 VLC 的所有属性都保留为默认值,在跨多个表单使用此插件时是否需要更改某些内容?有人知道怎么了吗?

更新:: 我在 WPF 中重建了程序,但我遇到了同样的问题。当我在第二种形式(与播放器相同的形式)上有一个按钮时,它工作正常,只要我从主形式调用它,就只有声音。呃!

我不知道,但我可以给一些解决建议,

  1. 确保 VLC 程序安装为 32 位。我不知道,我已经这样解决了一个问题。

  2. 我认为您的问题很可能是基于 "C:\Program Files (x86)\VideoLAN\VLC\plugins" 检查您的插件。也许您的 audio_filter、audio_mixer、audio_output 插件丢失了。

您可以删除 Vlc,然后下载并安装最后一个 VLC 32 位。

我认为这会解决您的问题。不要忘记 AxAXVLC 与 vlc 插件一起使用。

我自己解决了我的问题!

当我创建这个实例时,

ScreenOne playScreen1 = new ScreenOne();

我实际上是在创建一个我正在尝试做的冗余实例,我不确定这是否是正确的方式,但我基本上已经有了第二种形式的实例,并且正在制作另一个单独的实例以不同方式命名的形式。

我的代码中已经包含打开第二个表单的代码

Screen2 Screen2 = new Screen2(); 
private void openScreen2Button_Click(object sender, EventArgs e)
    {
        Screen2.Show();
    }

后来我这样做是错误的,我在我应该还在使用 Screen2 的时候添加了 playscreen1。

Screen2 playScreen1 = new Screen2();
playScreen1.PlayScreenOne();

因此,当我想使用该方法从第一个窗体开始在第二个窗体上播放媒体播放器时,我只需要使用我创建的用于打开窗体的相同 Screen2 实例,而不是为我想使用的方法创建了一个新实例。

IDK 如果我的解释有道理,或者它可能对大多数人来说是基础知识(我是菜鸟),但如果有人遇到这个问题,请给我发消息,我会尽力提供帮助。

o7