重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、首先新建一个HTML文档,如图所示。
创新互联建站专业为企业提供乐亭网站建设、乐亭做网站、乐亭网站设计、乐亭网站制作等企业网站建设、网页设计与制作、乐亭企业网站模板建站服务,十多年乐亭做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
2、然后在body标签里输入video标签。
3、接着在video标签内输入controls="controls",如图所示。
4、然后在video标签里输入source,接着在source内输入src="medias/volcano.ogg",如图所示。
5、然后在后面输入type="video/ogg"如图所示,然后在定义一个source标签。
6、在标签内输入src="medias/volcano.mp4" type="video/mp4"如图所示。
7、最后按f12预览就可以看到视频播放器了。
推荐你用格式工厂这个款软件,很不错的,音频、视频、图片都可以转换。 文件可以也可以任意选择。这款软件在网上也很好下载,而且都是免费的。 用的好的话,别忘给分哦:)
把你所有的音频标签的ID都存入一个数组中,然后点击一个的时候循环一下全部的ID都让它们暂停,只让你点击的那个播放,或者所有的音频都通过同一个音频标签播放,这样当有一个播放的时候其他的就都不能播放了~
首先我们用到的两个微信JS-SDK的独特接口:1、音频接口: 即通过js调用微信录音相关功能,包括录制、上传、播放,控制等。 2、智能接口: 所谓“智能”接口,目前只有一个“识别音频并返回识别结果接口”,即”声音转文字“。我们的产品"语速达人”基本功能逻辑是这样的: 用户读出题词板文字,手机录音,实时识别用户的语速,在完成几秒钟测试后,计算出用户平均语速水平,与小伙伴们愉快的PK“打嘴仗“。为了推广,希望基于Web做一个简单版的HTML5测试互动,用于微信传播。 很遗憾,这个功能在微信JS-SDK推出之前,是无法实现的:一方面JS调用设备录音功能受限,一方面通过JS进行实时语速识别的算法,性能会有问题,于是我们决定放弃了。但是微信JS-SDk推出后,突然发现,这个测语速功能的实现一下变得非常简单。于是经过了简单的功能设计后,前端攻城师立即开干,与APP上线同步做出了一个”语速达人“网页版。(1)Landing界面: 包括主视觉banner、挑战题目标题(摇一摇换一个题),以及一个”开始测试“按钮,(2)开始测试: 点击开始测试后,会显示题词板。并在3秒倒计时后开始录音。 请注意!用户首次使用时,微信会在这里弹出提示“网页请求录音功能,是否允许”的提示,只有用户选择允许,录音接口才能正常调用。(3)测试结果: 关键步骤来了!用户录音完成后,调用语音上传和智能识别接口,即可获得将语音转换后的文字。接口非常简单!1、目前还没有用户在录音授权后的回调接口,JS无法掌握用户授权的情况,如果用户在第一次使用时,请求录音权限时点了”不允许“,功能就废了。 2、如果文字长的话,声音转文字还是比较慢的。 3、微信很大方,我们用到的几个接口都没有使用频次的限制。 4、JS-SDK的文档简单但是很有效,Token获取的逻辑刚开始读的时候有点晕晕的,读完了准备开始写后台程序时发现微信的工程师已经都准备好了,拿来改个Key直接就能用了。这里赞一下微信团队。 5、原本计划在每个语速挑战下面,显示一个已经挑战了的用户的列表,并放上他们挑战时的录音。这个功能在JS-SDK支持下也能实现,但是为了更好地呈现,需要微信服务号的权限,才能获取用户的头像和昵称。时间原因,没有做出这个功能。 6、吐槽一下:微信服务号300RMB/年,微信开放平台接入300RMB/年,帐号不互通,分开申请分开审核分开收钱~真心觉得鹅长有必要计较这点收入么。。。PS:补充一个, 最近刚发现,有团队用语音接口做了”朋友圈发语音”的功能。听起来很不错的功能,通过JS-SDK实现起来真是太容易了,我觉得也是精巧的使用典范吧。
示例:
!DOCTYPE html
html
head
meta charset="utf-8"
titleAudio Example/title
script type="text/javascript"
// 扩展API加载完毕后调用onPlusReady回调函数
document.addEventListener( "plusready", onPlusReady, false );
var r = null;
// 扩展API加载完毕,现在可以正常调用扩展API
function onPlusReady() {
r = plus.audio.getRecorder();
}
function startRecord() {
if ( r == null ) {
alert( "Device not ready!" );
return;
}
r.record( {filename:"_doc/audio/"}, function () {
alert( "Audio record success!" );
}, function ( e ) {
alert( "Audio record failed: " + e.message );
} );
}
function stopRecord() {
r.stop();
}
/script
/head
body
input type="button" value="Start Record" onclick="startRecord();"/
br/
input type="button" value="Stop Record" onclick="stopRecord();"/
/body
/html