我正在开发一个使用WPF和AxShockwaveFlash的视频播放器。
它有以下步骤:
player.
我在第四步有个问题。
步骤1-3共享cookie (CookieContainer),但是步骤4不能.
我如何将它的cookie传递给嵌入式闪存视频播放器?
发布于 2009-12-13 07:19:32
它有更长的技巧,而不是使用Shockwave,您应该使用WebBrowser并导航到一个ashx或aspx页面,将所有cookie设置为从您的炊具到webbrowser的cookie。
为了正确设置cookie,您必须在asp.net网站上创建一个页面为"RedirectWithSession.ashx",
public class RedirectWithSession : IHttpHandler{
public void ProcessRequest(HttpContext context){
Response.Cookies.Add("ASP.NET_SessionID", Request.QueryString["SessionID"]);
Response.Redirect(Request.QueryString["RedirectUrl"]);
}
}现在,在您的WPF应用程序中,您必须找到ASP.NET_SessionID cookie并将其传递到url上,
http://host.com/RedirectWithSession.ashx?SessionID=[SessionID]&RedirectUrl=[Url]您的webbrowser将首先访问处理程序,然后它将正确地设置会话,然后加载您的视频url,这样您的webservice上下文和webbrowser上下文的会话将被共享。
我刚刚向您展示了ASP.NET_SessionID的示例,您可以传递多个cookie。这是最好的方法,您也可以使用自定义页面和javascript等,但我不知道它们是否将在所有安全模式下正确工作。
发布于 2009-12-12 09:27:34
例如,您可以将"flashvars“传递给flashvars对象
<object type="application/x-shockwave-flash"
data="myFlashThingy.swf" width="100%" height="100%">
<param name="play" value="true" />
<param name="movie" value="myFlashThingy.swf" />
<param name="menu" value="false" />
<param name="quality" value="high" />
<param name="flashvars" value="videoURL='http://somewhere.com/video.flv'" />
然后您可以访问ActionScript代码中的那些“闪光灯”。
在ActionScript2中,您会这样做:
var videoURL:String = _root.videoURL;在ActionScript3中,你会这样做:
var flashVars:Object = (this.root.loaderInfo as LoaderInfo).parameters;
var videoURL:String = flashVars.videoURL;希望它能帮上忙
https://stackoverflow.com/questions/1892597
复制相似问题