在你的点点发布的文章类型中插入视频/音乐(swf)
点点轻博客很纠结的地方就是分了“文字”,“图片”,“声音”,“影像”,“链接”这5种不同类别的文章,导致想在文字类型中添加视频这一功能都不能实现。
之前我早期群里提到了短代码实现的想法,然后在昨晚看到NMTuan发布了一篇关键词自动加链接的教程,发现可以通过判断文本来实现各种功能。
然后我就想实现这个短代码功能,但是不懂js的我真心写不出,所以只能参考NMtuan的方法改动了一下,写出了以下视频/音乐插入的方法。
教程如下:
在你的代码最顶部先添加以下部分
<script type="server/javascript">
// by https://huilang.me/ 2012-10-09
var list = new Array();
list.push(['swf','<embed src="']);
list.push(['/swf','" quality="high" align="middle" width="550" height="380" allowScriptAccess="sameDomain" allowFullscreen="true" type="application/x-shockwave-flash"></embed>']);
function n_swf(str,ary,sign){
sign = sign?sign:'``';
for(var i=0;i<ary.length;i++){
var regexp = new RegExp(sign+'('+ary[i][0]+')','g');
str = str.replace(regexp,''+ary[i][1]+'');
}
return str;
}
</script>
其中:第4行中的width="550" height="380"为插入视屏的宽度和高度,可根据你的具体需求修改。
然后修改你的正文输出部分,以二代为例(其实我还没测试过一代)
将
<?= post.summary ?>
换成
<?= n_swf(post.summary,list) ?>//这个其实可以不用
<?= post.content ?>
换成
<?= n_swf(post.content,list) ?>//这个必须修改
一代引擎的修改方法貌似一代不管用
使用的时候就用以下方法
首先用``作为判断的开始符,紧接着一个“swf”文本,然后是视屏的swf地址,最后面再次加一个``作为判断开始符,紧接一个“/swf”文本
例子
``Swfhttp://player.youku.com/player.php/sid/XNDA0NzIyMjA0/v.swf``/Swf
为防止以上代码被识别,我把swf改成了Swf,一共两处,自己修改回来(ps:``符号为键盘上1的左边)
PS:如果想用别的字符代替“``”此符号,则在第6行的代码中修改。
搞定收工。
附上一个效果展示
貌似是我第一个实现点点文章类型插入视频的... 偷笑中...
看的懂这个代码的人应该知道怎么获取优酷等的swf文件地址了吧,这里就不多说了。
插入音乐的方法明天补上
<script type="server/javascript">
// by https://huilang.me/ 2012-10-27
var list = new Array();
list.push(['swf','<embed src="']);
list.push(['/swf','" quality="high" align="middle" width="550" height="380" allowScriptAccess="sameDomain" allowFullscreen="true" type="application/x-shockwave-flash"></embed>']);
list.push(['/music','" quality="high" align="middle" width="257" height="33" allowScriptAccess="sameDomain" allowFullscreen="true" type="application/x-shockwave-flash"></embed>']);//这里是音乐播放器部分
function n_swf(str,ary,sign){
sign = sign?sign:'``';
for(var i=0;i<ary.length;i++){
var regexp = new RegExp(sign+'('+ary[i][0]+')','g');
str = str.replace(regexp,''+ary[i][1]+'');
}
return str;
}
</script>
使用方法
``swfhttp://www.xiami.com/widget/0_1770815807/singlePlayer.swf``/music
同样 修改
<?= post.content ?>
换成
<?= n_swf(post.content,list) ?>
注明:本文会持续更新,且转载之后,如你的模板中没有加入我上面的代码,是实现不了播放效果的,只会有一段代码。
在这里感谢NMTuan提供的帮助。
下面是“乌龙”提供的方法
js代码
function jsubb(str){
str = str.replace(/\(\d{1,4}),(\d{1,4}),(.*)\[\/embed\]/gi,'<embed src="$3" quality="high" align="middle" width="$1" height="$2" allowscriptaccess="sameDomain" allowfullscreen="true" type="application/x-shockwave-flash" />');
return str;
}
使用方法
输入的时候宽,高,url
输出的时候,jsubb(post.content)
因为自定义模板失效,所以未能测试...
整个能改成播放 .mp4 类的视频吗?
mp4格式的不行