我正在编写一个流媒体播放器,它使用 Un4Seen 的 Bass 本机音频 API 的 Bass.Net 包装器。我希望媒体播放器支持网络代理,这对我来说很容易在内置的 .NET webclient 库中进行设置,但我找不到有关如何在 Bass.Net 中设置代理的文档
关于如何做到这一点的任何想法?
public IntPtr _myProxyPtr;
...
// create an unmanaged pointer containing a copy of the string
_myUserAgentPtr = Marshal.StringToHGlobalAnsi("user:pass@server:port");
Bass.BASS_SetConfigPtr(BASSConfig.BASS_CONFIG_NET_PROXY, _myProxyPtr);
...
// make sure to free the myUserAgentPtr!!!
// e.g. when you dispose your class or application
Marshal.FreeHGlobal(_myProxyPtr);
BASS_CONFIG_NET_PROXY 代理服务器设置。newvalue (IntPtr):“用户代理”标头。代理服务器设置,形式为“user:pass@server:port”... null = 不使用代理。"" (空字符串) = 使用默认代理设置。如果只指定了“user:pass@”部分,那么这些授权凭证将与默认代理服务器一起使用。如果仅指定了“server:port”部分,则无需任何授权凭据即可使用该代理服务器。
BASS 不会复制代理字符串,因此它必须驻留在堆(而不是堆栈)中,例如。一个全局变量 - 见下面的例子!这也意味着随后可以在该位置更改代理设置,而无需再次调用此函数。
更改从下一次互联网流创建调用开始生效。默认情况下,BASS 将使用 Internet 属性控制面板中设置的 Windows 代理设置。
从这里:http ://www.bass.radio42.com/help/html/e67e2d41-ed14-19c1-b75a-48bad250f261.htm