LibVLCSharp - 当密码为“@”时,如何使用密码和媒体选项播放 RTSP 流?

问题描述

如果 RTSP 流密码是“pass@word”,我只能像这样将密码添加到 url 中播放:

rtsp://username:pass%40word@domain:port

将 @ 更改为 %40 对 URL 有效

但是当我尝试使用时: media.AddOption(":rtsp-pwd=pass@word");

身份验证失败。

使用 media.AddOption(":rtsp-pwd=pass%40word");也失败了。

解决方法

尝试对话框回调

var libVLC = new LibVLC();

libVLC.SetDialogHandlers((title,text) => Task.CompletedTask,(dialog,title,text,username,store,token) =>
    {
        dialog.PostLogin(Username,Password,false);
        tcs.SetResult(true);
        return Task.CompletedTask;
    },type,cancelText,actionText,secondActionText,token) => Task.CompletedTask,indeterminate,position,text) => Task.CompletedTask);

var mp = new MediaPlayer(libVLC)
{
    Media = new Media(libVLC,UrlRequireAuth,Media.FromType.FromLocation)
};

mp.Play();