Я новичок в использовании VLC на C# winforms. Я установил или добавил vlcControl в свой проект C#, используя Vlc.DotNet.Forms.dll. Ниже приведено руководство о том, как я установил vlcControl в своем проекте:
https://github.com/ZeBobo5/Vlc.DotNet/wiki/Использование-Vlc.DotNet-в-WinForms
Я также протестировал свое RTSP-видео на своем установленном проигрывателе VLC, и оно работает, и у меня есть ссылка RTSP.
Я хотел бы знать, как я могу играть в RTSP на моем добавленном vlcControl? Также мой RTSP имеет аутентификацию.





"rtsp://192.168.1.62:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif&user=admin&password=xxx").Ссылка на вики, которую вы упомянули, устарела. Эта ссылка содержит более актуальную информацию: 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, заключается в использовании диалогового API libvlc.
С 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));
Ваш метод получения URL мне не подходит. В моих журналах отладки URL-адрес показывает именно то, что я набрал, например, «отладка:« rtsp:// .... »успешно открыта».