Flash全站的技术应用-Flash也能播放wmv,wma

前言
Flash能播放除flv,mp3以外的其它文件格式吗?结合Windows Media Player(以下简称WMP),答案是肯定的!不过有点可惜的是,这样的播放器不兼容FF浏览器。
记得一个月前,luzhugao把自己做的Flash+WMP音乐播放器拿到经典论坛里展示:
[url=http://www.zhugao.cn/player/index.html]
[color="#333366"]http://www.zhugao.cn/player/index.html[/color]
[/url]
当时,他的作品可是备受青睐,同时也引起了笔者的关注。因为笔者前段时间也刚做了个类似的,正在打算要做个也可以播放视频的,所以想从他的作品中学习一下,然后再写个教程给大家分享下。可恰逢luzhugao正在做商业版的播放器,他的所有东西都加密了,不方便拿他的来研究。把教程写出来,也担心他的版权会受侵犯(加上笔者也曾经是受害者)。不过幸运的是,笔者在luzhugao的播放器里发现了有个显示波形的窗口,那个就是用来显示视频用的!当发现了这点以后,笔者就可以在自己播放器的基础上,研究怎么做视频播放了。
不过,笔者在做这个之前,也曾犹豫过。
因为我的网站之前是只是打算放flv的,所以就通过遮罩把播放器的外框做成圆角,但是笔者的视频都不是自己做的,直接用人家网站上的。目前flv如此不流行的情况下,笔者要用到自己的网站上,就非得先把人家的视频下到自己的机上,转成flv,再上传。或者好一点的,就是一边上传一边转格式。但是,很多时候,视频数量很多,而且时间也不短,要更新一次,恐怕需要几天时间,太慢了。
如果只复制视频的地址,就可以把视频更新到自己的网站上,那该多好啊。所以,结合WMP成为笔者的首选,可是,要把这样的播放器定制成别的形状就难得要命了,哪怕定得好,也不知道怎么样才能让播放器跟网页缝合起来。
然而,笔者还是尝试了,结果发现,好像那个尖角也没有太大影响,于是就做下去了。但是,现在进度条还没有做出来,然后,点里头的图片,光盘都暂时没有链接到视频里头。自己感觉,特别是后两者做起来会比较花时间,加上有人对我的教程期待已久,就先写教程好了。
PS:其实WMP的代码我也是在网上下一个来用的。
有个小尖角影响的播放器预览:
[url=http://hbro.cincn.com/cindex.htm#contents=video]
[color="#333366"]http://hbro.cincn.com/cindex.htm#contents=video[/color]
[/url]
这里,双击视频窗口或者点十字按钮都可以实现全屏播放,全屏后双击就可以恢复原来的大小。
为了让大家相信这一播放器确实可以播放除flv以外的WMP视频格式(注意,RM,RMVB那些不是WMP视频格式,不能在这里播放),笔者又做了一个演示文档,让读者可以自行在Flash的文本框里输入网址来播放。如果没有安全影响的话,估计本地的也是可以播放,不过路径最好使用file:///的那种格式。当然你也可以直接点选右侧播放列表里头的视频来测试。
演示播放器地址:
[url=http://hbro.cincn.com/hbro/course/flashwebplayer/player.html]
[color="#333366"]http://hbro.cincn.com/hbro/course/flashwebplayer/player.html[/color]
[/url]
因为使用了WMP+Flash,所以基本上,整个播放器功能的实现都要通过JS,关于JS与AS的通讯,看下这帖子,笔者在这里就不再重复了。
[url=http://bbs.blueidea.com/viewthread.php?tid=2668305&extra=page%3D5%26filter%3Dtype%26typeid%3D16]
[color="#333366"]http://bbs.blueidea.com/viewthre ... Dtype%26typeid%3D16[/color]
[/url]
现在,笔者先以一个简单的功能为例,说明Flash是怎么样控制视频,并且视频反过来如何改变Flash的当前状态。
点播放列表的任一项目后,通过名为setvideo的fscommand,把列表路径传到HTML里,此时,JS获取到路径,就可以设置视频的路径了。在演示文档里,WMP播放器的实例名设为video,那么,在接收到fscommand以后,就可以作如下设置:
switch(command){
  case "setvideo":
    video.URL=args;
    break;
}
此时,如果大家耐心等待(时间由网速决定),将能等到视频在WMP播放器里播放了。但是,要让用户等待很长时间,又没有任何提示的话,将让浏览者不耐烦,因此,有必要给用户一些提示,让用户看到希望。
如果大家都在线听过歌或者看过视频的话,相信都会看到一些提示如“正在连接”,“正在缓冲”等播放状态的消息,那么,我们自己能否获取呢?答案是肯定的。正在缓冲,正在播放,那些状态其实都能触发WMP控件的一些事件,并且能为我们所获得。
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyuweb/838.html

你可能感兴趣的:(flash技术,Flash,浏览器,音乐,BBS,HTML)