c# - 如何在 C# 上从 VLC 播放 RTSP
问题描述
我是在 C# winforms 上使用 VLC 的新手。我使用Vlc.DotNet.Forms.dll
. 以下是有关如何在项目中安装 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# - 使用 groupBy 将数据从 Linq-to-XML 保存到对象列表
- java - 通过文本文件搜索红黑树
- algorithm - 在具有给定约束的二维矩阵中找到最佳选择
- python - PySerial 数据更新
- java - 在 vertx 应用程序中创建多个 httpserver
- html - 内部 div 没有得到中心
- javascript - foreach中的Javascript总和目录大小
- python - Anaconda/OpenCV:使用跟踪功能安装
- python - 列表中对象继承的mypy问题
- visual-studio - Android 设备管理在 Visual Studio 2017 中引发错误