我刚开始在C# winforms上使用VLC。我使用vlcControl在C#项目中安装或添加了一个Vlc.DotNet.Forms.dll。下面是关于如何在我的项目上安装vlcControl的指南:
https://github.com/ZeBobo5/Vlc.DotNet/wiki/Using-Vlc.DotNet-in-WinForms
我也测试了我的RTSP视频在我安装的VLC播放器和它是工作的,我有RTSP链接。
我想知道如何在我添加的vlcControl上播放RTSP?我的RTSP也有身份验证。
发布于 2019-03-19 09:08:39
"rtsp://192.168.1.62:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif&user=admin&password=xxx")。发布于 2019-04-03 13:56:04
你提到的维基链接已经过时了。此链接提供更多“最新”信息: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));https://stackoverflow.com/questions/55179767
复制相似问题