在FCKeditor 2.6中添加插入视频和音频功能(最新修订版)

修改前注意备份文件,以免造成不必要的麻烦。

一、分别打开:editor/js/fckeditorcode_ie.js和/editor/js/fckeditorcode_gecko.js

找到程序代码

以下是代码片段:

Js代码

||/\.swf($|#|\?)/i.test(A.src)

这段代码的主要用来判断后缀名,如果后缀名不是swf则返回,把它替换为:

 以下是代码片段:

Js代码

||/\.swf($|#|\?)/i.test(A.src)||/\.mpg($|#|\?)/i.test(A.src)||/\.asf($|#|\?)/i.test(A.src)||/\.wma($|#|\?)/i.test(A.src)||/\.wmv($|#|\?)/i.test(A.src)||/\.avi($|#|\?)/i.test(A.src)||/\.mov($|#|\?)/i.test(A.src)||/\.mp3($|#|\?)/i.test(A.src)||/\.rmvb($|#|\?)/i.test(A.src)||/\.mid($|#|\?)/i.test(A.src)

文件格式可以根据情况来修改,但是注意要和其他的几个地方吻合

二、打开/editor/dialog/fck_flash/fck_flash.js

1、增加程序代码,这段代码用来判断后缀名

Js代码

function WinPlayer(url){  
var r, re;  
re = /.(avi|wmv|asf|wma|mid|mp3|mpg)$/i;  
r = url.match(re);  
return r;  
}  
   
function RealPlayer(url){  
var r, re;  
re = /.(.rm|.ra|.rmvb|ram)$/i;  
r = url.match(re);  
return r;  
}  
   
function QuickTime(url){  
var r, re;  
re = /.(mov|qt)$/i;  
r = url.match(re);  
return r;  
}  
   
function FlashPlayer(url){  
var r, re;  
re = /.swf$/i;  
r = url.match(re);  
return r;  

2、替换程序代码,这段代码是在UpdatePreview中用来添加type属性

SetAttribute( e, 'type''application/x-shockwave-flash' ) ; 

if(WinPlayer(GetE('txtUrl').value)!=null){  
SetAttribute( e, 'type', 'application/x-mplayer2' ) ;  
}  
if(RealPlayer(GetE('txtUrl').value)!=null){  
SetAttribute( e, 'type', 'audio/x-pn-realaudio-plugin' ) ;  
}  
if(QuickTime(GetE('txtUrl').value)!=null){  
SetAttribute( e, 'type', 'application/video/quicktime' ) ;  
}  
if(FlashPlayer(GetE('txtUrl').value)!=null){  
SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ;  
SetAttribute( e, 'pluginspage', 'http://www.macromedia.com/go/getflashplayer ' ) ;  

3、替换程序代码,这段代码是在UpdateEmbed中用来添加type属性

 SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ;  
SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer ' ) ; 

if(WinPlayer(GetE('txtUrl').value)!=null){  
    SetAttribute( e, 'type' , 'application/x-mplayer2' ) ;  
    SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;  
}  
if(RealPlayer(GetE('txtUrl').value)!=null){  
    SetAttribute( e, 'type' , 'audio/x-pn-realaudio-plugin' ) ;  
    SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;  
}  
if(QuickTime(GetE('txtUrl').value)!=null){  
    SetAttribute( e, 'type' , 'video/quicktime' ) ;  
    SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;  
}  
if(FlashPlayer(GetE('txtUrl').value)!=null){  
    SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ;  
    SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer ' ) ;  

 

三、打开/fckconfig.js,该文件为配置文件

替换程序代码,这个是在上传文件的时候检查后缀名

 

FCKConfig.FlashUploadAllowedExtensions = ".(swf)$" ; // empty for all  

 FCKConfig.FlashUploadAllowedExtensions   
    = ".(swf|fla|mpg|asf|wma|wmv|avi|mov|mp3|rmvb|mid)$" ; // empty for all 

 

三、打开/editor/lang/zh-cn.js 文件,该部分为语言文件,Flash替换掉就可以了

然后整体修改完成,现在已经支持上传视频和音频文件,不过注意的是,如果视频文件太大,还是可能出现不能播放的情况

四、总结(重要的部分哦)

费话:很少写技术文档,是心爱的人改变了我,HOHO,不得不承认爱的力量很伟大。

正题:到第三步的时候,自己测试,上传一个wmv格式的视频,结果提示不支持的格式,仔细查找了一下,问题出在ascx文件。费话少说,找到/editor/filemanager/connectors/aspx/config.ascx,打开这个文件,修改TypeConfig["Flash"].AllowedExtensions后面的数组,个人觉得支持最好的格式为:flv,wmv,wma,mp3,asf,最好是支持什么文件就添加什么文件,不然不支持你上传到服务器,就会产生大量的垃圾文件,HOHO,到这里就大功告成了,经过测试OK,如果有什么技术疑问可以加QQ22550450,that's all,see you next Article.

:)

posted @ 2010-10-07 10:32  Joe_true  阅读(3002)  评论(1编辑  收藏  举报