Ссылка на вики, которую вы упомянули, устарела.Эта ссылка предоставляет более актуальную информацию: 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));