飞龙博客

妙法莲华经

VS2005之aspnet插入播放flash视频答案

feilong.org 修订于2008-06-27 02:50:00

用VS2005开发ASP.NET2.0中,如何插入和播放flash?飞龙用dreamweaver插flash文件,那是很容易的,但是交给程序员用用VS2005开发ASP.NET2.0,插入flash的代码和dreamweaver中一样的,可就是不能播放!

VS2005开发aspnet如何插入播放flash,飞龙(feilong.org)建议首先考虑下面的这个解决方法:
网络上有资料说,可以使用asp.net特有方式插入flash,就是在工具箱上点右键,添加控件,将 flash的dll文件(这个是什么,飞龙搞不明白?) 加进去,以后工具箱上就会多一个showave的控件,拖进页面就行。步骤是,在工具栏--右键自定义com组件--加入show... flash object ;在工具栏添加至form,右键属性,指明url。

如何播放FLASH文件?好像需要一个DLL吧。(飞龙想,flash的dll文件,大概就是这个了)安装Flash之后有一个 flash.ocx(这个很重要,到flash安装文件夹中找下!),在你的VS2005程序中引入,然后调用对应接口(飞龙不大明白)。

引入后类名为TShockwaveFlash。
其主要属性如下:
ReadyState:读一个flash文件时的状态,
其中包括0=Loading、1=Uninitialized、
2=Loaded、3=Interactive和4=Complete;
TotalFrames:总帧数,只有当ReadyState=4时才能访问该属性;
FrameNum:当前播放的帧;
Playing:播放或暂停一个flash;
Quality:指定当前渲染的质量,
包括0=Low、1=High、2=AutoLow、3=AutoHigh;
ScaleMode:缩放模式,0=ShowAll、1=NoBorder、2=ExactFit;
AlignMode:对齐模式,Left=+1、Right=+2、Top=+4、Bottom=+8;
BackgroundColor:背景色,-1为默认颜色;
Loop:是否循环;
Movie:指定播放的flash文件路径,可以为一个URL。

其主要方法如下:
Play():开始播放动画;
Stop();停止播放动画;
Back();播放前一帧动画;
Forward():播放后一帧动画;
Rewind():播放第一帧动画;
SetZoomRect(int left,int top,int right,int bottom):设置缩放的区域;
Zoom(int percent):按百分比缩放;
Pan(int x,int y,int mode):缩放播放面板,其中模式0为按像数、1为按窗口百分比。

其主要事件如下:
OnProgress(int percent):读取一个flash时触发;
OnReadyStateChange(int state):状态改变时触发。
states的值可以为
0=Loading、1=Uninitialized、2=Loaded、3=Interactive和4=Complete。

还有的说,其实VS2005开发时不能显示flash,但是发布以后会正常显示,可能是VS2005程序的一个bug,也可能不是VS2005 程序问题,可能是web服务器的问题。因此,在dreamweaver里弄好,再复制过去,不会错的。飞龙(feilong.org)这下有点晕了,不想架设VS2005服务器环境,也没有网络服务器哈哈。

下面是飞龙(feilong.org)收集整理的一些net插入flash的一些代码,飞龙建议你一个一个的尝试,找到那个可以成功的办法,因此飞龙不想深入学习.net技术哈抱歉靠你自己。

由于flash影片要和web页面在同一目录(飞龙提示:你最好也这样做),所以插入的相对路径是flvplayer.swf。你最好先用记事本或其他代码编辑软件(飞龙觉得,推荐用记事本和editplus或dreamweaver,别用vs2005哈哈),把代码中的"flvplayer.swf"全部替换成你的flash文件路径,还有width="220" height="170",换成你的播放器尺寸大小,然后在需要插入Flash的地方插入播放flash的代码。

方法1,常用的插flash代码,dreamweaver中生成的代码好像就是这个?
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com
/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"
width="220" height="170">
<param name="movie" value="flvplayer.swf" />
<param name="quality" value="high" />
<embed src="flvplayer.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="220" height="170">
</embed>
</object>
</div>

方法2,基本和方法一相同,flash版本号不同,是6,0,29,0的。
<object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://download.macromedia.com
/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="220" height="170">
<param name="movie" value="flvplayer.swf">
<param name="quality" value="high">
<param name="scale" value="exactfit">
<embed src="flvplayer.swf"
width="220" height="170" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" scale="exactfit"></embed>
</object>

方法3,飞龙提示:挺简洁但不能设多少参数
<embed src="flvplayer.swf"
width="220" height="170"
type="application/x-shockwave-flash"
pluginspage="flvplayer.swf">
</embed>

方法4,飞龙提示:和上面的代码有点不同哦!
<object type="application/x-shockwave-flash"
data="flvplayer.swf" width="220" height="170" >
<param name="movie" value="flvplayer.swf" /></object>

方法5,可以设很多参数,不知道的可以保持默认。一个小问题,有时插入FLASH动画在编辑时会自动播放,但浏览页面时却不会自动播放。这种情况用户可以用"源代码"编辑方式,直接修改FLASH播放的一个参数:查找到"PARAM NAME="Play" VALUE="0">"这句代码,把值"0"改为"-1"。好了,代码如下:
<OBJECTcodeBase="http://download.macromedia.com
/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<PARAM NAME="Movie1" VALUE="flvplayer.swf">
<PARAM NAME="Src" VALUE="flvplayer.swf">
<PARAM NAME="Play" VALUE="-1">
<PARAM NAME="Loop" VALUE="-1">
<PARAM NAME="WMode" VALUE="Transparent">
<PARAM NAME="_cx" VALUE="14000">
<PARAM NAME="_cy" VALUE="10500">
<PARAM NAME="FlashVars" VALUE="">
<PARAM NAME="Quality" VALUE="High">
<PARAM NAME="SAlign" VALUE="">
<PARAM NAME="Menu" VALUE="0">
<PARAM NAME="Base" VALUE="">
<PARAM NAME="AllowScriptAccess" VALUE="">
<PARAM NAME="Scale" VALUE="ShowAll">
<PARAM NAME="DeviceFont" VALUE="0">
<PARAM NAME="EmbedMovie" VALUE="0">
<PARAM NAME="BGColor" VALUE="">
<PARAM NAME="SWRemote" VALUE="">
<PARAM NAME="MovieData" VALUE="">
<PARAM NAME="SeamlessTabbing" VALUE="1">
<PARAM NAME="Profile" VALUE="0">
<PARAM NAME="ProfileAddress" VALUE="">
<PARAM NAME="ProfilePort" VALUE="0">
</OBJECT>

--------------------------------------------------

方法6,asp.net版flv播放器源代码。
这个似乎很流行,flv播放器其实也是一个flash文件,不过需要调用很多flv文件,一起起作用的。
Flv播放器一般是Flash+ActionScript编写,或Flash加Java编写的程序。

所谓 asp.net版 ,无非就是在.aspx页面中正常显示进行调用罢了。
Flv播放器有很多种,推荐使用:Vcastr1.0 FLV player。功能:可以读取xml设置播放列表;
可以直接以给出flv地址进行播放;自定义尺寸,自动适应;mm播放器风格;
循环播放;最大化播放;支持直接js嵌入;

演示页面: http://i.aspx1.com/upload/demo/flv/show.aspx ;
播放器下载:http://i.aspx1.com/upload/demo/flv/vcastr.swf 。
参考来源:http://i.aspx1.com/showtree.aspx?topicid=202&postid=587。

调用代码如下:----->
<embed
src=flvplayer.swf
vcastr_file=yourfile1.flv|yourfile2.flv
showMovieInfo=0
pluginspage=http://www.macromedia.com/go/getflashplayer
type="application/x-shockwave-flash" wmode="transparent"
quality="high" width="220" height="170">
</embed>

方法7,还是asp.net版 flv播放器源代码。听说这个办法还可以。
首先,调用播放页面时可以把播放文件的地址保存在Session中,如
Session["url"]
然后,播放页面的代码里定义一个取地址的函数
public string GetUrl() {return Session["url"].ToString();}
然后,修改<object>标签项
<param name="FlashVars" value="vcastr_file=<% =GetUrl() %>" /> ;
好啦,试试看能成功不?

方法8,飞龙(feilong.org)懒得贴了,直接参考:http://blog.blueshop.com.tw/uni2tw/archive/2006/10/13/42326.aspx

--------------------------------------------------

方法9,变通办法,在net中插入WMP试试看,即windows media player文件,哈哈。
ActiveX解码器控件可以放曲子,还能放Flash和其它视频文件,代码如下:
<object id="player" height="170" width="220"
classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<param NAME="AutoStart" VALUE="-1">
<!--是否自动播放-->
<param NAME="Balance" VALUE="0">
<!--调整左右声道平衡,同上面旧播放器代码-->
<param name="enabled" value="-1">
<!--播放器是否可人为控制-->
<param NAME="EnableContextMenu" VALUE="-1">
<!--是否启用上下文菜单-->
<param NAME="url" value="*.wma">
<!--播放的文件地址-->
<param NAME="PlayCount" VALUE="1">
<!--播放次数控制,为整数-->
<param name="rate" value="1">
<!--播放速率控制,1为正常,允许小数,1.0-2.0-->
<param name="currentPosition" value="0">
<!--控件设置:当前位置-->
<param name="currentMarker" value="0">
<!--控件设置:当前标记-->
<param name="defaultFrame" value="">
<!--显示默认框架-->
<param name="invokeURLs" value="0">
<!--脚本命令设置:是否调用URL-->
<param name="baseURL" value="">
<!--脚本命令设置:被调用的URL-->
<param name="stretchToFit" value="0">
<!--是否按比例伸展-->
<param name="volume" value="50">
<!--默认声音大小0%-100%,50则为50%-->
<param name="mute" value="0">
<!--是否静音-->
<param name="uiMode" value="mini">
<!--显示模式:Full显示全部;mini简化;None不显示控制;invisible全部不显示-->
<param name="windowlessVideo" value="0">
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
<param name="fullScreen" value="0">
<!--开始播放是否自动全屏-->
<param name="enableErrorDialogs" value="-1">
<!--是否启用错误提示报告-->
<param name="SAMIStyle" value>
<!--SAMI样式-->
<param name="SAMILang" value>
<!--SAMI语言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
</object>

更新网址:https://feilong.org/asp-net-insert-flash-swf-flv
最初发布:20080627 02:50:00 feilong.org 于广州

加入收藏夹,查看更方便。

所在分类: 网站开发

新作:

旧文: