WebRTC在chrome浏览器里演示的例子很多, WebRTC的源码里就有,但是在Firefox浏览器里,例子不能使用, 网上的资料说要把 media.peerconnection.enabled 设置为True, 但是Firefox浏览器里,默认该值就是为True,用WebRTC的例子在Firefox上还是无法采集本地视频。
下面是在网上找到的例子:
Firefox 下演示 webrtc的网址 :http://conversat.io/
最关键的是 SimpleWebRTC.js这个脚本。
SimpleWebRTC.js 封装了 WebRTC 技术的 JavaScript ,帮你简化 WebRTC 应用开发。
示例代码:
Conversat.io是一个语音群聊应用。你只需要使用支持WebRTC的浏览器登陆网站,建立一个聊天室,然后你就可以和最多6个人一起视频聊天——无需登陆,无需其他服务,只有视频聊天。
目 前,只有两种浏览器支持WebRTC组件运行conversat.io,Chrome和Firefox的Nightly版本(你需要前往Firefox的 about:config启用media.peerconnection.enabled个性化设置,其实不需要,默认该选项已经是true了)conversat.io是一个非常酷的演 示,WebRTC处于起步阶段,有时应用比较棘手,因此,后来引进了新的库。
正如Henrik Joreteg在Hacks博客上写的,“conversat.io的目的有两个,一个是重要的交流工具……其次,他是一个SimpleWebRTC.js库和小信令服务器运行的演示,signelmaster。”
作为WebRTC的部分包装,这两个工具,旨在简化WebRTC应用的编写过程——如WebRTC的jQuery。两个库都是开源的(MIT授权)并且在GitHub上不断的完善和进化。
如果你想多了解SimpleWebRTC和signalmaster,并且看更多的代码,更多内容请看Mozilla Hacks博客。
如果有了数以百万计的八核乃至更多核的移动设备,我们能做些什么?不如考虑一下WebRTC,这个技术能够真正在浏览器中实现点对点。大家不妨看看PeerJS以及SimpleWebRTC.js。在我看来,我们似乎可以将昂贵的后端服务器抛在一边,认真探索一套利用移动设备合作所构成的可持续发展计算模型。
一、ICTCLAS的介绍
中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐码模型的汉语词法分析系统 ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),该系统的功能有:中文分词;词性标注;未登录词识别。分词正确率高达97.58%(最近的973专家组评测结果),基于角色标注的未登录词识别能取得高于90%召回率,其中中国人名的识别召回率接近98%,分词和词性标注处理速度为31.5KB/s。ICTCLAS 和计算所其他14项免费发布的成果被中外媒体广泛地报道,国内很多免费的中文分词模块都或多或少的参考过ICTCLAS的代码。
二、开始使用ICTCLAS进行分词
1.下载ictclas4j
首先到ictclas的网站下载JAVA版本的ictclas——ictclas4j。
下载地址 :之前的下载地址已经无效,我是在新浪爱问上下到的。
2.在Eclipse中 新建项目并进行 配置
首先把 ictclas4j解压缩,然后把 Data文件夹整个拷贝到 Eclipse项目的文件夹下, 而 bin目录下的 org文件夹整个拷贝到你Eclipse项目的 bin目录下,把src目录下的org文件夹整个拷贝到 Eclipse项目 的src目录下。
3.测试分词结果
import org.ictclas4j.bean.SegResult; import org.ictclas4j.segment.SegTag; public class TextSegmentation { public static void main(String[] args) { String fileContent = "中国科学院计算技术研究所在多年研究基础上," + "耗时一年研制出了ICTCLAS汉语词法分析系统"; SegTag segTag = new SegTag(1);// 分词路径的数目 SegResult segResult = segTag.split(fileContent.trim()); String classifyContent = segResult.getFinalResult(); System.out.println("分词结果\n"+classifyContent); } }
就是这样,我们可以得到输出的结果,并且带有词性的标注。
分词结果 中国科学院/n 计算/n 技术/n 研究所/n 在/c 多年/m 研究/n 基础/a 上/f ,/w 耗时/v 一/d 年/a 研制/v 出/q 了/u ICTCLAS/nx 汉语/n 词法/n 分析/v 系统/a
三、关于可能出现的错误
1.越界错误
在Dictionary.java里面的getMaxMatch()函数里要注意加上对wis的判断语句
if(wis != null)
否则有时会报出越界错误
2. “org.apache”
这个新建的测试类可能会提示错误:"The import org.apache cannot be resolved",这是由于系统需要一个Apache的commons的jar包。
3.关于第三点越界的问题之前的博主没有注意到
在Dictionary.Java的findInModifyTable方法中有这么一段:
前段时间用到,写了段小测试代码,个人觉得足够清楚的表明了二者的区别了,还是不明白的话,就看看APUE里面的章节吧。
#include <time.h> #include <stdio.h> int main(int argc, char **argv) { time_t tmpcal_ptr = {0}; struct tm *tmp_ptr = NULL; tmpcal_ptr = time(NULL); printf("tmpcal_ptr=%d\n", tmpcal_ptr); tmp_ptr = gmtime(&tmpcal_ptr); printf("after gmtime\nday=%d\n", tmp_ptr->tm_hour); tmp_ptr = localtime(&tmpcal_ptr); printf("after localtime\nday=%d\n", tmp_ptr->tm_hour); return 0; }
运行结果如下:
基本的意思是,gmtime转出来的是0时区的标准时间
localtime是将时区考虑在内了,转出的当前时区的时间。但是注意,有些嵌入式设备上被裁减过的系统,时区没有被设置好,导致二者转出来的时间都是0时区的。