信最方便之处莫过于语音功能,
但就是这个语音功能,
也成了骗子骗钱最便捷的手段,
这不,已经有不少人上当受骗!
陛下,您的Flash插件已过期,无法播放视频了
建议您……
升级 Flash 插件
切换到 HTML5 播放器
或者
微信语音诈骗
很多人不知道,声音也是可以伪造的,骗子就是通过微信发伪造语音,来获取对方的信任,最终达到骗钱的目的,骗子具体是怎么做的呢?
诈骗第一步:盗取微信账号
骗子要用微信语音骗钱,第一步会先通过植入木马等非法手段盗取你的微信账户,窃取你微信里的相关信息。
所以我们平时在使用微信时要时刻警惕手机里的陌生链接和异常二维码,对自己的微信账号和密码也要严加防守,不可轻易泄露给别人。
诈骗第二步:登录“克隆微信”软件
大家平常使用的微信都是正版微信,没有“一键转发语音”的功能,而这个克隆微信它是“增强版的微信”,不仅能一键转发语音,还可以提取语音文件,模拟受害者的声音发语音骗钱。
更可怕的是,这种“克隆微信”在很多购物网站上都有售卖,只需花几十块钱就可以买到。
诈骗第三步:通过“克隆微信号”实施诈骗
有了克隆微信后,通过克隆出来的微信账号,就能看到原微信账号的所有信息,并提取微信里的语音信息,给好友发消息,骗子就是这样完成诈骗的。
骗子的手段实在是高明,语音也能克隆,这正好提醒大家,耳听也不一定为实,涉及到钱的一定要当面确认,别发语音,直接视频或者打电话。
常见诈骗手段
微信在生活中使用越来越频繁,围绕微信展开的诈骗也越来越多,除了微信语音诈骗,这些诈骗的手段也要早日识破。
木马红包
微信有发红包的功能,很多人一看到微信红包就想点,但很多红包只是一个陷阱,有些“红包”并不是微信官方红包,只是长得像。
打开了这种红包,就会要求用户输入手机号码,依次操作下来,你的手机就已经被安装了木马程序。
木马一旦入侵你的手机,就会窃取你手机里的各种私密信息,你手机里的钱就危险了,并且还会以你的身份给更多人发类似的“病毒红包”,让病毒扩散,所以看到这样的红包千万别点。
二维码诈骗
类似的还有二维码诈骗,商家以给消费者返利或者优惠为由,给消费者发送有毒二维码,消费者一旦扫了这个二维码,手机就面临中毒的风险。
帮忙砍价
微信朋友圈经常会看到帮忙“砍一刀”的消息,有的真的是为了帮忙砍价,而有的纯碎是为了套取粉丝关注或者骗取个人信息等,这时候要警惕,一定要在正规平台完成“砍一刀”活动。
假冒微信好友
有些骗子更狡猾,假冒微信好友,说自己的手机刷机以后,电话号码都没有了,让你把你的电话号码发过来,发过去以后谎称自己的微信登录需要验证,又让你发短信验证码,就这样轻易就用你的手机号码完成注册或转账。
微信转账追回
骗子的手段总是让人防不胜防,万一真的被骗了也别紧张,小编教你怎么及时追回损失。
向腾讯后台举报
在微信里找到小程序那一栏,点击搜索“腾讯举报受理中心”。
选择“网络诈骗”,按照指示填好相关信息,并提交上当受骗的证据,微信官方会依法依规帮你及时追回相关损失。
设置延时转账
为了防止被骗,我们可以将微信转账功能中的“实时到账”设置成“延时到账”,这样万一被骗了,钱不会立马到骗子的账户里,还有机会补救一下。
骗子总是无处不在,
防骗也是无时不有,
我们能做的就是小心再小心!
快告诉身边的朋友~
我还在南方小岛上玩儿的时候,一个朋友给我发了条语音信息(早上发的,我晚上才听,我让你发语音)大概是说,能不能帮忙联系一个会 HTML5 的团队,领导要求做一个 HTML5 的活动页面。
看来 HTML5 的浪潮又要让我们的广告客户浑身湿透了。他们想要华丽的页面,想要让用户觉得他们很酷。事实上,即使他们只做了一张很廉价的“活动邀请函”页面,用户也觉得好棒好厉害。真相是,大部分用户并不知道其中的奥秘。
HTML5是针对超文本语言HTML的第五次修订。具体HTML是什么?我们先笼统地认为它是一种用来创建网页的手段就好。不过你不是科技从业者,也不是什么都要懂一点的极客。你会想:什么html、Input type=date、js线程、socket、标准扩展embed、css3……这些都是什么鬼我根本不想知道快扔走!
这一切并不在你学习的范围内。你只关心这样一个问题:它会为你的生活带来怎样的变化?
❶ 你手机里的原生APP会变少。
原生APP,就是你到应用商店里选一个应用、等待下载、确认权限、等待安装,然后点击打开的那种移动应用,它专门针对某一类移动操作系统生成,必须被完整安装到手机里。而有一种“假”APP,它们打开后基本利用手机中的浏览器来运行,而且不需要下载后安装,就能立即在手机界面中生成一个APP图标——HTML5就是生产这种“假”APP的利器。比如你玩《神经猫》就不需要下载一个APP,而这个游戏正是用HTML5网页实现的。
❷ 你那个当程序员的男朋友(如果你有)就可以早点下班回家了。
HTML5是唯一一个通吃PC、Mac、iPhone、iPad、Android、Windows Phone等主流平台的跨平台语言。因为这种跨平台的便利,程序员们只需要为之开发一种类别的产品——说白了就是一个万能的网页。他再也不需要做一款只能在苹果手机上运行的APP后,再做一款也可以在三星、小米上使用的APP。
❸ 你的手机里没有Flash了。
如果需要一个能够集中展示视频、音频等各种媒体形式的插件,那就是Flash。这个部署在亿万浏览器里的商业插件俨然成为事实上的网页标准。但是,HTML5把这个标准打破了,这些媒体形式不再需要Flash这一插件就能分布在网页当中。HTML5可以让我们不借助第三方插件实现多媒体。
❹ 正因为你的系统需要运行的第三方插件变少,浏览器占用的系统资源相对也会变少,有可能你会发现自己的手机电量变得更持久了。
❺ 当你使用定位服务的时候,不用点“搜索”了,直接点“附近”。
这是因为HTML5更好地实现了基于地理位置的功能,在从前那些使用旧语言编辑的网页上,LBS(基于位置的服务)没有获得很好的支持,所以你需要在网页上依次选择全国、北京、朝阳区、大望路……
❻ 网页更美观。
对网页设计师来说,HTML5重新定义了很多设计标准,这使得他们在工作的时候遵循着更加科学的方法,再加上HTML5可以让我们不借助第三方插件实现多媒体,网页设计师得以发挥他们的创造力,你会看到更加酷炫的网页界面。
视觉,这是最重要的。对用户来说,没有什么比直接的体验更能说明某种技术为世界带来的改变。现在我用几个腾讯新闻的手机页面来举例,和你在微信朋友圈看到的那些蹩脚的邀请函、抽奖页面相比,这些页面尝试用一种更有意思、更流畅的方式来讲述事件。
APEC期间推出的《服装秀》,截取的三个界面。在这个应用中,新闻相关的人物将会变成试衣模特。例如你可以选择奥巴马当你的模特,然后给他换上各种服装。
上图《再见2元的风景》是针对北京地铁票价调整制作的新闻专题页。这个流传甚广的煽情专题,也是一个HTML5页面,它提供了一种流畅的图片浏览方式。
HTML5 同样为网页提供了更多交互的可能,比如你可以在同一个页面中完成一个网页调查,然后直接分享给你的朋友圈好友。
总之,HTML5 可以更有效地组织互联网中的信息,并让视频、音频等服务得到更好的支持;并在减轻开发者的负担的同时,让用户在不同的平台上有更一致的体验。
没有炫耀的意思,这些内容出于个人对HTML5的好奇,导致我多看了一些材料,并且咨询了行业的专家。大致上,我能保证这些内容都是可信的,对普通人而言,这些已经足够:甲方或者乙方们再也不会轻易骗走你的巨额预算。
“你知道那你说啊。”
乌云装扮者包含了世界、黑色趣味和明亮内心
微信号及新浪微博@DACLODS
页移动端H5开发中,我们时常遇到输入手机号码的场景,这里以手机号码(数字)语音播放为切入点,供大家学习。
你往下看的是Javascript技术教程
实现思路:
语音对象,用于语音播放,可实现按url插入顺序播放,实现未播放url删除不读。
input数字控制对象,用于控制输入内容。
支持:
中英文数字语音播放,默认使用百度翻译语音程序。
支持自定义数字语音路径。
方便控制混合app开发时,语音路径置换为app本地路径,减少网络请求,提高读取速度。
原生和jQuery两种方式实现。
代码部分:
<!DOCTYPE>
<html>
<head>
<title> New Document </title>
<meta charset="utf-8">
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name=”viewport” content=”width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;” />
</head>
<script type="text/javascript" src="http://www.linuxidc.com/inc/jquery.js"></script>
<script src="http://api.html5media.info/1.1.6/html5media.min.js"></script>
<script src="http://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>
<script type="text/javascript">
<!--
var SpeechVideo = function(){
this.urls = [];
this.canload = true;
this.setInterval = null;
this.audio = null;
};
SpeechVideo.prototype.__load = function(){
var me = this;
if(this.canload == false){ return; }
var url = this.urls.shift();
if(url == null && this.setInterval != null){ clearInterval(this.setInterval); this.setInterval = null; return; }else{ this.play(url); }
if(this.setInterval == null){
this.setInterval = setInterval(function(){
me.__load();
},10);
}
}
SpeechVideo.prototype.play = function(url){
this.canload = false;
if(this.audio == null){
if(typeof Audio != 'undefined'){ this.audio = new Audio(); }else{
//兼容IE9-
if(typeof $ !== 'undefined'){
var $audio = $('<audio src="'+ url +'" controls preload></audio>').hide();
$audio.appendTo(document.body);
this.audio = $audio[0];
}else{
var audio = document.createElement('audio');
audio.style.display="none";
document.body.appendChild(audio);
this.audio = audio;
}
}
}
if(typeof Audio != 'undefined'){
var audio = this.audio,me = this;
audio.src = url;
if(window.attachEvent){
audio.onloadstart = function(){ me.canload = false;};
audio.onended = function() { me.canload = true; };
audio.onerror = function() { me.canload = true; };
}else{
audio.addEventListener('loadstart',function(){ me.canload = false;});
audio.addEventListener('ended',function() { audio.currentTime = 0; me.canload = true; });
audio.addEventListener('error',function() { audio.currentTime = 0; me.canload = true; });
}
audio.play();
}else{
//兼容IE9-【暂时没找到合适的方法,以网易云音乐为例的话,估计有眉目】
}
}
SpeechVideo.prototype.next = function(url){
this.urls.push(url);
this.__load();
};
SpeechVideo.prototype.remove = function(ele){
if(typeof ele == 'undefined'){ this.urls.pop(); }else
if(typeof ele == 'number'){
if(ele > this.urls.length - 1){ ele = this.urls.length - 1; }
this.urls.splice(ele,1);
}else{
var index = -1;
for (var i = 0; i < this.urls.length; i++) {
if (this.urls[i] == ele) return index = i;
}
if(index > -1){ this.urls.splice(index,1); }
}
}
var NumberSpeech = function(cfg){
var dfCfg = {
input : null, reg : null ,
srcsMap : { //英文发音
'1' : 'http://fanyi.baidu.com/gettts?lan=en&text=One&spd=3&source=web',
'2' : 'http://fanyi.baidu.com/gettts?lan=en&text=Two&spd=3&source=web',
'3' : 'http://fanyi.baidu.com/gettts?lan=en&text=Three&spd=3&source=web',
'4' : 'http://fanyi.baidu.com/gettts?lan=en&text=Four&spd=3&source=web',
'5' : 'http://fanyi.baidu.com/gettts?lan=en&text=Five&spd=3&source=web',
'6' : 'http://fanyi.baidu.com/gettts?lan=en&text=Six&spd=3&source=web',
'7' : 'http://fanyi.baidu.com/gettts?lan=en&text=Seven&spd=3&source=web',
'8' : 'http://fanyi.baidu.com/gettts?lan=en&text=Eight&spd=3&source=web',
'9' : 'http://fanyi.baidu.com/gettts?lan=en&text=Nine&spd=3&source=web',
'0' : 'http://fanyi.baidu.com/gettts?lan=en&text=Zero&spd=3&source=web'
}//输入容器【支持ID 和 jquery对象两种形式】 , 输入规则 , 发音资源
};
var type = navigator.appName,lang = (type == "Netscape" ? navigator.language : navigator.userLanguage).substr(0, 2);
if (lang == "zh"){
dfCfg.srcsMap = { //中文发音
'1' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E4%B8%80&spd=5&source=web',
'2' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E4%BA%8C&spd=5&source=web',
'3' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E4%B8%89&spd=5&source=web',
'4' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E5%9B%9B&spd=5&source=web',
'5' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E4%BA%94&spd=5&source=web',
'6' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E5%85%AD&spd=5&source=web',
'7' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E4%B8%83&spd=5&source=web',
'8' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E5%85%AB&spd=5&source=web',
'9' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E4%B9%9D&spd=5&source=web',
'0' : 'http://fanyi.baidu.com/gettts?lan=zh&text=%E9%9B%B6&spd=5&source=web',
};
}
if(typeof $ !== 'undefined'){
dfCfg = $.extend(true, dfCfg, cfg || {});
}else{
//浅层次copy
var srcs = cfg.srcsMap || {};
delete cfg.srcsMap;
for(var key in (cfg || {})){ dfCfg[key] = cfg[key]; }
for(var key in srcs){
dfCfg.srcsMap[key] = srcs[key];
}
}
if(dfCfg.input == null){ throw '请指定当前容器'; }
var $input = dfCfg.input,speechVideo = new SpeechVideo(),oldLength = 0,isIE = typeof window.attachEvent !== 'undefined';
if(typeof $ !== 'undefined'){ //TODO !== 为测试原生方式暂设置 ==
if(typeof dfCfg.input == 'string'){ $input = $('#'+dfCfg.input);}
$input.bind('keydown',function(event){
if(event.keyCode == 8 && isIE){
//var curValue = $(this).val();
//var len = oldLength - curValue.length;
//for(var i=0;i<len;i++){
speechVideo.remove(); oldLength--; if(oldLength < 0){ oldLength = 0;}
//}
}
});
$input.bind("input propertychange change",function(){
var curValue = $(this).val();
if(oldLength > curValue.length){ speechVideo.remove(); }else{
var last = curValue.substring(curValue.length - 1);
if(dfCfg.srcsMap[last]){
speechVideo.next(dfCfg.srcsMap[last]);
}
}
oldLength = curValue.length;
});
}else{
var inputObj = document.getElementById(dfCfg.input),objEvent;
oldLength = inputObj.value.length;
inputObj.onkeypress = function(event){
var keyCode = event.keyCode;
event.returnValue = (keyCode >= 48 && keyCode <= 57);
};
inputObj.onkeydown = function(event){
if(event.keyCode == 8 && isIE){ speechVideo.remove(); oldLength--; if(oldLength < 0){ oldLength = 0;}}
}
objEvent = function(event){
var curValue = '';
if (typeof event.srcElement != 'undefined' && event.propertyName == "value") {
curValue = event.srcElement.value;
}else if(typeof event.target != 'undefined'){ curValue = event.target.value; }
if(oldLength > curValue.length){ speechVideo.remove(); }else{
var last = curValue.substring(curValue.length - 1);
if(dfCfg.srcsMap[last]){
speechVideo.next(dfCfg.srcsMap[last]);
}
}
oldLength = curValue.length;
}
//input.onpropertychange = input.oninput = input.onchange
if(isIE){ inputObj.onpropertychange = objEvent; }else{ inputObj.oninput = objEvent; }
}
}
window.onload = function(){
new NumberSpeech({
input : 'numberspeech'
});
}
//-->
</script>
<body>
<input type="text" id="numberspeech"/>
</body>
</html>
未尽事项:
IE9- 的支持,使用audio.js 不过这里不深究,毕竟应用场景在APP端,跟微软IE关系没多大。这里demo已引用支持,可自行实现。若应用于PC端,多选移除时,内部oldValue计算方式不合理,这暂不在考虑范围内,可自行优化,难度不大~
思路扩展:
利用百度语音(以“http://fanyi.baidu.com/gettts?lan=zh&text=%E4%BA%94&spd=5&source=web”为例,text对应的值,即为语音内容),实现语音播放时很轻松的。
附注: 该文原发自我个人技术博客,今后会逐步迁移到,以期形成系列教程,还原订阅关注,技术无止境,但愿一路有你。
你没看错,老皇叔是个程序猿
*请认真填写需求信息,我们会在24小时内与您取得联系。