gpt4 book ai didi

c# - 如何在 C# 上从 VLC 播放 RTSP

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:37 26 4
gpt4 key购买 nike

我不熟悉在 C# winforms 上使用 VLC。我使用 Vlc.DotNet.Forms.dll 在我的 C# 项目上安装或添加了一个 vlcControl。以下是有关如何在我的项目中安装 vlcControl 的指南:

https://github.com/ZeBobo5/Vlc.DotNet/wiki/Using-Vlc.DotNet-in-WinForms

我还在我安装的 VLC 播放器上测试了我的 RTSP 视频,它工作正常,我有 RTSP 链接。

我想知道如何在添加的 vlcControl 上播放 RTSP?我的 RTSP 也有身份验证。

最佳答案

您提到的 wiki 链接已过时。此链接提供更多“最新”信息:https://github.com/ZeBobo5/Vlc.DotNet/wiki/Getting-started#vlcdotnetforms

您还可以查看此示例以了解其工作原理:https://github.com/ZeBobo5/Vlc.DotNet/tree/develop/src/Samples/Samples.WinForms.Minimal

关于身份验证,您可以在 URL 中使用凭据,例如 rtsp://user:pass@.../,但这被认为是一种不好的做法,并且会导致警告。

自 VLC 3.0 以来的新方法是使用 libvlc 对话框 API。对于 Vlc.DotNet,您可以通过实现 IVlcDialogManager 来使用它。您可以在此处查看示例实现(对于 WPF,但相同的逻辑适用于所有平台):https://github.com/ZeBobo5/Vlc.DotNet/blob/develop/src/Samples/Samples.Wpf.Dialogs/MetroDialogManager.cs

例如,你可以这样做:

    public class MyDialogManager : IVlcDialogManager
{
public async Task<LoginResult> DisplayLoginAsync(IntPtr userdata, IntPtr dialogId, string title, string text, string username, bool askstore,
CancellationToken cancellationToken)
{
return new LoginResult
{
Username = "username",
Password = "password",
StoreCredentials = false
};
}

public Task DisplayErrorAsync(IntPtr userdata, string title, string text)
{
// You could log errors here, or show them to the user
return Task.CompletedTask;
}

public async Task DisplayProgressAsync(IntPtr userdata, IntPtr dialogId, string title, string text, bool indeterminate, float position,
string cancelButton, CancellationToken cancellationToken)
{
return Task.CompletedTask;
}

public void UpdateProgress(IntPtr userdata, IntPtr dialogId, float position, string text)
{
}

public async Task<QuestionAction?> DisplayQuestionAsync(IntPtr userdata, IntPtr dialogId, string title, string text, DialogQuestionType questionType,
string cancelButton, string action1Button, string action2Button, CancellationToken cancellationToken)
{
return Task.FromResult<QuestionAction?>(null);
}
}

像这样使用它:

mediaPlayer.Dialogs.UseDialogManager(new MyDialogManager(this));

关于c# - 如何在 C# 上从 VLC 播放 RTSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55179767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com