当前位置: 首页 > news >正文

九江建设监督网站学校网络推广方案

九江建设监督网站,学校网络推广方案,青岛房产网,wordpress 收费 主题html中的video标签可以用来播放常见的音视频格式#xff0c;支持的格式包括:MP3、Ogg、WAV、AAC、MP4、WebM、AVI等#xff0c;当然支持的格式也和浏览器和操作系统有关。这里以一个可以自动播放音视频并绘制波形图的页面为例说明一下video标签的用法。 vid…html中的video标签可以用来播放常见的音视频格式支持的格式包括:MP3、Ogg、WAV、AAC、MP4、WebM、AVI等当然支持的格式也和浏览器和操作系统有关。这里以一个可以自动播放音视频并绘制波形图的页面为例说明一下video标签的用法。 video标签想自动播放需要设置三个可选属性分别是muted、autoplay、controlsmuted负责让音视频播放静音autoplay让音视频自动播放controls属性负责显示对应的控制菜单。除了通过html页面设置标签属性之外我们还可以通过js脚本来设置对应的属性设置方法如下所示: !DOCTYPE html html headtitle播放音视频/titlemeta charsetUTF-8 /head bodyvideo idmyVideo autoplay muted controlssource src./mysong.mp3 typeaudio/mpeg!--source srcvideo.mp4 typevideo/mp4--Your browser does not support the video tag./videoscriptvar videoElement document.getElementById(myVideo);// 自动静音播放videoElement.muted true; videoElement.autoplay true;videoElement.controls true;/script /body /html浏览器为了防止页面自动播放音频干扰用户不允许在用户没有进行交互操作的时候网页自动以非静音的模式播放音视频。所以autoplay属性必须搭配muted属性一块使用。 如果想要绘制音视频播放过程中的音频波形图我们需要拦截对应的音频上下文分析绘制对应的音频数据。对应的实现如下所示: !DOCTYPE html html headtitle绘制音频波形图/titlemeta charsetUTF-8 /head bodyh1绘制音频波形图/h1video idmyVideo controlssource src./mysong.mp3 typeaudio/mpegYour browser does not support the video tag./videocanvas idwaveformCanvas/canvas script// 获取video元素和canvas元素let video,analyser,ctx,canvas,audioContext,timerID,analyserNode;video document.getElementById(myVideo);//播放的时候调用初始化操作video.addEventListener(play,initWaveDraw);//获取画布元素canvas document.getElementById(waveformCanvas);ctx canvas.getContext(2d);function initWaveDraw(){// 创建音频上下文if(!audioContext){audioContext new(window.AudioContext || window.webkitAudioContext)();analyser audioContext.createAnalyser();analyser.connect(audioContext.destination);analyserNode audioContext.createMediaElementSource(video);analyserNode.connect(analyser);timerID setInterval(drawWaveform,200); }}// 绘制波形图function drawWaveform() {// 获取波形数据var bufferLength analyser.fftSize;console.log(drawing wave);var dataArray new Uint8Array(bufferLength);analyser.getByteTimeDomainData(dataArray);// 清空画布ctx.clearRect(0, 0, canvas.width, canvas.height);// 绘制波形图ctx.lineWidth 2;ctx.strokeStyle rgb(0, 255, 255);ctx.beginPath();var sliceWidth canvas.width * 1.0 / bufferLength;var x 0;for (var i 0; i bufferLength; i) {var v dataArray[i] / 128.0;var y v * canvas.height / 2;if (i 0) {ctx.moveTo(x, y);} else {ctx.lineTo(x, y);}x sliceWidth;}ctx.lineTo(canvas.width, canvas.height / 2);ctx.stroke();} /script /body /html显示效果如下图所示: 如果想让播放器自动播放音频并放音我们可以采用一些迂回策略首先让播放器自动静音播放然后设置一个定时器检测用户是否和页面发生了操作交互如果产生了交互就播放音频并绘制波形图。(浏览器默认没有交互的时候不允许播放声音) 对应的实现如下所示: !DOCTYPE html html headtitle绘制音频波形图/titlemeta charsetUTF-8 /head bodyh1绘制音频波形图/h1video idmyVideo controlssource src./mysong.mp3 typeaudio/mpegYour browser does not support the video tag./videocanvas idwaveformCanvas/canvas script// 获取video元素和canvas元素let video,analyser,ctx,canvas,audioContext,timerID, checktimerID, analyserNode;var hasUserInteracted false;video document.getElementById(myVideo);//获取画布元素canvas document.getElementById(waveformCanvas);ctx canvas.getContext(2d);video.muted true; video.autoplay true;video.controls true;// 监听键盘按下事件function handleUserInteraction(){console.log(user has interacted);hasUserInteracted true;}document.addEventListener(click, handleUserInteraction);checktimerID setInterval(checkMouseClick, 1000);setTimeout(function(){ video.addEventListener(volumechange,handleUserInteraction);},2000);//定时检测鼠标事件,开启带声音的播放function checkMouseClick(){if(hasUserInteracted){ initWaveDraw();video.muted false; video.play(); clearInterval(checktimerID);}}function initWaveDraw(){// 创建音频上下文if(!audioContext){audioContext new(window.AudioContext || window.webkitAudioContext)();analyser audioContext.createAnalyser();analyser.connect(audioContext.destination);analyserNode audioContext.createMediaElementSource(video);analyserNode.connect(analyser);timerID setInterval(drawWaveform,200); }}// 绘制波形图function drawWaveform() {// 获取波形数据var bufferLength analyser.fftSize;console.log(drawing wave);var dataArray new Uint8Array(bufferLength);analyser.getByteTimeDomainData(dataArray);// 清空画布ctx.clearRect(0, 0, canvas.width, canvas.height);// 绘制波形图ctx.lineWidth 2;ctx.strokeStyle rgb(0, 255, 255);ctx.beginPath();var sliceWidth canvas.width * 1.0 / bufferLength;var x 0;for (var i 0; i bufferLength; i) {var v dataArray[i] / 128.0;var y v * canvas.height / 2;if (i 0) {ctx.moveTo(x, y);} else {ctx.lineTo(x, y);}x sliceWidth;}ctx.lineTo(canvas.width, canvas.height / 2);ctx.stroke();} /script /body /html
http://www.sadfv.cn/news/418131/

相关文章:

  • 福州网站建设的公司搭建网站需要什么技术
  • 顺企网浙江网站建设网站卡片设计
  • wordpress网站加密码阿里云做电影网站
  • 关于网站建设的几点体会临安做网站的公司有哪些
  • asp网站后台制作东莞seo推广
  • 英文网站建设电话咨询广州市建设网站
  • 新吴区网站建设开发公司房价制定
  • 企业网站 建设过程wordpress中国
  • 用php写的网站计算机考试网页制作怎么做
  • 深圳网站建设公司多少钱如今做那些网站能致富
  • 学建网站 必须学那些知识点开图片跳到网站怎么做的
  • 亚马逊云服务器seo网站收录工具
  • 天津网站开发培训学校wordpress非管理员编辑器不全
  • 四川做网站的公司wordpress 旅游
  • 轻设计 让网站灵敏轻便的6个技巧企业工商登记信息查询系统
  • 做特效的网站江苏企业网站建设
  • 山东网站建设都有那些视频剪辑培训大概多少钱
  • 东莞网站推广优化河北网络公司排名
  • 视频网站建设价位河南省建设厅注册中心网站
  • 网站首页轮播怎么做竞价排名的服务模式是
  • 成都手机网站建设哪动漫设计培训机构哪里好
  • 企业公司网站制作湘西网站建设
  • App加网站什么做开发网站流程
  • 沧州工商联网站建设网站基础功能
  • 深圳南山企业网站建设为什么要找对做网站的公司
  • 门户网站开发流程wordpress菜鸟教程
  • 做淘宝客网站性质自己设计logo网站
  • 网站换空间多少钱网站建设的卖点
  • php笔记网站谷歌推广怎么做最有效
  • 搜索引擎网站排名优化方案广告设计制作教程