这是我一直在策划的一个产品,目的是使语音技术能在互联网更广泛的应用。每一个页面,只要加入一段javascript脚本就能使用,经过1个多月的努力,终于初步实现的功能,初步在数字报纸上使用:
效果还不错,使用了1Pix Player进一步的设计和重构正在进行中。大家有什么想法和建议欢迎留言。
以下是Sample: http://ctdsb.cnhubei.com/html/ctdsb/20080322/ctdsb293789.html
任何网站或者使用web作为界面的程序都可以使用,使用的方法是:
1) 在你想出现播放器的地方插入一个层: <div id="speech_player" name="speech_player"></div> 层的id可以自己定。
2)把以下代码放在</body>前面:
<script type="text/javascript" src="http://speech.w3cool.com/swf/speech.js"></script>
<script type="text/javascript">
var _scid = "copytext"; // 你希望朗读的文章块的id;
var _spid = "speech_player"; //显示播放器的id;
speaker();
</script>
就可以。下一步将实现自定义播放器的样式。大家可以在自己的blog和网站里面加。
Iconv for windows - 编码转换
[ 大恐龙 发表于 2007年12月18日 14:16 ]
最近剽窃一个开源项目项目,把东西往自己的项目里面拖的时候发现,TMD原来是欧洲人写的,用的 windows-1252的编码,怎么办。还好熟悉iconv呵呵。拷到linux下一转就好了,但是SCP来来去去很麻烦,决定写一个windows下的iconv,和linxu的iconv的参数不一样的是-s 代表搜索子目录:
具体用法:
-f From CodePage 源编码
-t To Codepage 目标编码
-s SubDirectory 递归检索子目录
-v Verbose 显示转化日志
eg:
iconv *.bat -p C:\\MyProject -f Windows-1252 -t utf-8 -v -s
*.bat 文件名一定要放在第一个参数呢。呵呵
下载文件:
iconv.exe
Tags:
'
iconv
'
开源一个的Asp.net公共上传文件程序
[ 大恐龙 发表于 2007年12月 6日 02:50 ]
思路是这样的:任何一个web应用程序提交的都是一个表单,表单内有文件域。
这里这个上传文件拦截到这个form提交的所有文件域,处理上传,并将文件域改名为同名的文本域,文本域的内容就是成功上传的URL,如果失败返回为空,然后redirect到目标的信息页。样就很容易实现img.xxxxxx.com的效果,也能购方便的将论坛博客的上传分离,所要做的就是将上传的action改为该程序的上传处理地址,默认为 /i/up.aspx
配置文件:
<uploaderconfig>
<applications><!--可以有多个-->
<uploaderapplication>
<id>bbs_uploadfile</id>
<refererdomain>bbs.cnhubei.com</refererdomain>
<refererurl>http://bbs.cnhubei.com/post_upload.asp(.*)</refererurl> <!--调用合法的URL,可以使用正则表达式-->
<successurl></successurl><!--成功后返回页面-->
<errorurl></errorurl><!--出现错误返回页面-->
<domain>img.cnhubei.com</domain><!--目标URL-->
<localfolder>D:\Host\img.cnhubei.com</localfolder>
<allowedextensions>.gif|.jpg|.jpeg|.png|.bmp|.tif|.iff|.swf|.swi|.mid|.wav|.mp3|.rmi|.cda|.avi|.mpg|.mpeg|.ra|.ram|.wov|.asf</allowedextensions>
<allowedextensionssize>350000|350000|350000|350000|350000|350000|35000|750000|35000|50000|35000|50000|50000|50000|50000|50000|50000|50000|50000|50000|50000</allowedextensionssize><!--限制文件上传大小和上传的扩展名,上下对应-->
<folderparse>^UploadFile|yyyyMM|dd|HH</folderparse><!--文件存放规则-->
</uploaderapplication>
</uploaderconfig>
bbs.cnhubei.com使用动网论坛,修改后上传文件均改为 img.cnhubei.com 分离图片后论坛的运行效率得到有效的改观
源代码下载:
关于iCast等“富媒体”广告的研究(三)--附JS文件
[ 大恐龙 发表于 2007年3月 3日 00:28 ]
this.showPlayer1 = function() {
try {
var w = window.open('http://g.fc510.com/2052/130.html',this.player_name,"fullscreen=0, toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=0, left=" + screen.width + ", top=" + screen.height + ", width=" + this.movie_w_final + ", height=" + this.movie_h_final);
} catch (e) {}
if (typeof(w)=="undefined" || w==null) {
return -1;
}
this.write_exp_time();
this.submitData4CPM(this.mission_id);
this.set_domain(this.original_domain);
return 1;
}
先看看这段js,这一段js就是在没有任何限制时弹出windows.open()的窗口。修改cookies和提交流量统计。
this.showPlayer2 = function() {.......
这个函数用来弹出模态对话框的版本。
if(!isDEMO && !this.is_quick_load)
{
var s1 = "";
s1 += '<APPLET style="visibility:hidden; position:absolute" code="ntelevise.web.nTelevise.class" codebase="'
+ this.code_base
+ '" name="nTelevise_APP" id="nTelevise_APP" WIDTH=1 HEIGHT=1 ALIGN=baseline ARCHIVE="nTelevise.jar" MAYSCRIPT>';
s1 += '<param name=flashurl value="' + this.download_base + this.cur_movie_file_name + '">';
s1 += '<param name=advname value="' + this.mission_id + '" ><\/APPLET>';
var s2 = "";
s2 += '<APPLET style="visibility:hidden; position:absolute" code="ntelevise.web.nTelevise.class" codebase="'
+ this.code_base
+ '" name="nTelevise_APP" id="nTelevise_APP" WIDTH=1 HEIGHT=1 ALIGN=baseline ARCHIVE="nTelevise.jar" MAYSCRIPT>';
s2 += '<param name=flashurl value="' + this.download_base + this.cur_movie_file_name +'">';
s2 += '<param name=advname value="' + this.mission_id + '" ><\/APPLET>';
var re1 = /sohu/i;
var re2 = /17173/i;
if(isSohuCode)
document.write(s2);
else
document.write(s1);
this.applet_create_time = new Date();
}
呵呵,上面这个函数则是在js无法弹出窗口的情况下。准备弹出的applet程序,注意这里:APPLET style="visibility:hidden; position:absolute" 为什么这样写我稍候再讲。
最近要好好休息一下,这是几个主要的函数,文件附在后面,大家看了有问题再说,声明:本人不欢迎任何新手和对技术有着极其肤浅认识热衷于"做管理"的伪IT人向我提出任何问题以及要求帮助,本人也不会解答任何人关于为什么部署不成功无法显示等问题,如果没有能力看的懂我提供的代码,就算了。祝大家周末愉快。
下载:点击下载文件 (jar文件也在里面,入门的人就可以部署在自己的机器上试一下了,有问题不要来问我)
Tags:
'
applet
' '
html
' '
iCast
' '
javascript
' '
富媒体
'
关于iCast等“富媒体”广告的研究(二)
[ 大恐龙 发表于 2007年2月20日 20:46 ]
现在我们找讨论一下js文件。iCast使用了JScript.Encode来加密js的源代码,这是5.0版ie的一个功能,目前也只有ie支持,也就是说,iCast只能在5.0般的ie上看到,不过现在世界上的ie普及率这么高,icast也就不在乎什么兼容性了,经常问如何屏蔽iCast的弟弟妹妹们,装个firefox吧,这样看sina的时候就不怕那什么出来了。源代码怎么decode出来我就不用说了吧,什么?不知道,不知道是这个世界上最牛的话,服了U,自己去问Google大神。不可否认,iCast的js文件写的是相当的精妙的,一般的程序员很难写得出如此好地js,iCast的技术壁垒不在java而在javascript,从头说起:
var ntelevise_channel_ID = 583;
var _nTelevise_Controller_init = [ntelevise_channel_ID, 43327, "http://www.w3cool.com/ntelevise/", "http://travel.w3cool.com.cn/adv/skin/white/", "http://www.w3cool.com/ntelevise/", "http://track.w3cool.com.cn/tracker/trackerI2.dll","2.swf|2.swf",320,264,false,"#000000","2.zip",10,false,"","","","http://secure-cn.fc510.com/cgi-bin/m?ci=cn-hdt&cg=0&si=http://house.fc510.cn/",false,false];
.这是整个的初始化参数:
-
'site_id', (站点id, 指一个投放广告的子站点如.news.163.com)
-
'mission_id' (投放任务id,用与计费)
-
'download_base' (广告文件下载地址)
-
'skin_base' (播放器外观)
-
'code_base' (程序文件的下载前缀)
-
'track_server' (计费服务器地址)
-
'movie_filename1','movie_w1','movie_h1' (广告文件名,宽度、长度)
-
'is_quick_load' (不知道是什么)
-
'cookie_name' 记录广告是否被播放了,播了一次就别播了,不过最近163、sina好像都不在乎了,打开就播,也是现在广大网民烦他们的地方。
-
'ad_type'(不知道是什么)
-
'3pt_tracker'(不知道是什么)
-
'no_title'(不知道是什么)
-
'listen_domain'(不知道是什么)
this.param_list = ['site_id', 'mission_id','download_base','skin_base','code_base','track_server','movie_filename1','movie_w1','movie_h1','is_loop','bg_color','dld_filename','interval','is_quick_load','cookie_name','cpm_tracker','ad_type','3pt_tracker','no_title','listen_domain'];
for (var i=0; i<this.param_list.length; i++ ) {
var x = this.param_list[i];
if ( x!='' && x!=null ) {
this[x] = para[i];
}
}
this.inited = false;
this.GUID = Math.abs(this.mission_id) + '_' + Math.abs(this.site_id);
this.UID = (Math.random()+1).toString().replace(/\./,'').substr(0,12);
this.submit_list = this.submit_list_string = [];
this.submit_timeout = null;
this.played_count = 0;
this.domain = '';
this.original_domain = '';
这一段用于初始化和获取参数。
Tags:
'
applet
' '
html
' '
iCast
' '
javascript
' '
富媒体
'
关于iCast等“富媒体”广告的研究(一)
[ 大恐龙 发表于 2007年2月12日 15:28 ]
最近看到一个同事的blog上居然还在谈论如何屏蔽iCast,呵呵,本人虽不才,但ICast在我看来是很取巧的东西,其实并没有什么技术含量,在这里先对iCast的运行过程和原理进行简要的分析。
ICast实际上是两块flash文件,当页面加载时,叶面引用iCast的js,这个js会首先对浏览器情况进行一些检测,例如是不是ie,能不能弹出新窗口等,然后根据能否运行javascript, 能否弹出窗口,能否运行javaApplet这三种情况,这段js的小程序会做3种方式来处理:
一、当浏览器支持javascript且能弹出窗口时,直接使用弹出式窗口弹出带视频flash的小窗口。如图:
查看全文:" 关于iCast等“富媒体”广告的研究(一) " »
Tags:
'
applet
' '
html
' '
iCast
' '
javascript
' '
富媒体
'













![[Valid RSS]](http://www.w3cool.com//images/valid-rss.png)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](http://www.w3cool.com//images/valid-atom.png)






[Rolly] 于 08-03-22 发表: 经常出现 “语音内容正在处理中,请稍后再试”,每次都要重新刷新后才可以。怎样才能避免出现这样提示?...
[大恐龙
[cha0] 于 08-03-20 发表: 恐龙兄,和LS同求附件。。 麻烦您有空的时候给俺也发一个 shoko.z@126.com...
[小手] 于 08-03-11 发表: 早就知道官方的BitTorrent是干净的,可它不好用。有点儿不影响使用的广告有什么关系?只要不像3...
[小手] 于 08-03-11 发表: 你写的东西挺有意思的,希望能多看到些,也许从此才能真正了解你吧——这一直是我很困惑的问题。可悲哀的是...