广告位联系
返回顶部
分享到

实现HTML5音频和视频嵌入的教程

html5 来源:互联网搜集 作者:酷站 发布时间:2018-09-01 10:54:00 人浏览
摘要

今天小编给大家介绍实现HTML5音频和视频嵌入的教程 HTML5未出来之前,在线的音频和视频都是借助Flash或者第三方工具实现的,现在HTML5也支持了这方面的功能。在一个支持HTML5的浏览器中,不需要安装任何插件就能播放音频和视频。原生的支持音频和视频,为HTM

今天小编给大家介绍实现HTML5音频和视频嵌入的教程

HTML5未出来之前,在线的音频和视频都是借助Flash或者第三方工具实现的,现在HTML5也支持了这方面的功能。在一个支持HTML5的浏览器中,不需要安装任何插件就能播放音频和视频。原生的支持音频和视频,为HTML5注入了巨大的发展潜力。

html实现音频嵌入(传统方式):这种方式虽然可以实现,但是要浏览器支持Flash而且并不能实现控制,所以要实现起来很麻烦。

<object height="200" width="200" data="2_1.swf" >
</object>
<embed src="2_1.mp4" type="">


那么也就是说HTML5存在一个很大的问题就是兼容性。音频

HTML5支持的音频格式:


 

视频

视频格式:


 

由上可知,HTML5貌似支持的格式有点少哈,所以当你发现用HTML5放置音频和视频不显示时,应该就是格式不支持的问题。注: MP4有3种编码,mpg4(xdiv),,mpg4(xvid),avc(h264), 只有h264才是公认的MP4标准编码(在这也是被坑了,其他格式的只有声音没有图像。)遇到这种问题,就用视频格式转换器,转换一下格式就OK啦。

音频实现起来很简单:这里工具条使用了浏览器默认的工具条。
 

<audio src="htmls/1.mp3"  controls="controls" loop="loop" preload="auto" >
你的浏览器不支持video元素
</audio>

视频虽然也可以使用浏览器默认的,但无法实现私人订制,所以从学技术的角度讲,还是要学习一下自己做工具实现功能(audio也可参照此方法)。

audioVideo.html
 

<!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>网页放置视频</title>
        <style type="text/css">
        </style>
        <script type="text/javascript" src="js/ControlBar.js"></script>
    </head>
    <body>
        <audio src="htmls/1.mp3"  controls="controls" loop="loop" preload="auto" >
            你的浏览器不支持video元素
        </audio>
        <video id="myPlayer" width="600" height="400" src="htmls/2_1.mp4" controls="controls" loop="loop" poster="3.jpg">
            你的浏览器不支持audio元素
            <!-- MP4有3种编码,mpg4(xdiv),,mpg4(xvid),avc(h264),
                  只有h264才是公认的MP4标准编码 -->
        </video>
        <div id="progress"></div>
        <!-- 音量控制 -->
        <input id="volume" type="range" min="0" max="1" step="0.1" onchange="Volume(this)">
        <!-- 速率和时间进度的信息 -->
        <span id="rate">1</span>fps <span id="info"></span>
        <button onclick="Play(this)" id="btn1">播放</button>
        <button onclick="Fast()">快进</button>
        <button onclick="Slow()">慢进</button>
        <button onclick="Prev()">后退</button>
        <button onclick="Next()">前进</button>
        <button onclick="Muted(this)">静音</button>
    </body>
</html>

显示(html)与功能实现(js)分离,由外部导入

ControlBar.js

 

//使用脚本检测浏览器的标签支持情况
var support = !!document.createElement("audio").canPlayType;
if (!support) {
    alert("你的浏览器不支持本视频播放");
}
// 定义全局的视频对象
var e1 = null;
window.addEventListener("load", function() {
    e1 = document.getElementById("myPlayer");
});
/*前进:一分钟 */
function Next() {
    e1.currentTime+=10; //设置属性currentTime,快进10s
}
/*后退:一分钟 */
function Prev() {
    e1.currentTime-=10; //设置属性currentTime,后退10s
}
/*播放/暂停*/
function Play(e) {
    if(e1.paused){
        e1.play();
        document.getElementById("btn1").innerHTML="暂停"
    }else{
        e1.pause();
        document.getElementById("btn1").innerHTML="播放"
    }
}
/*慢进:小于等于1时,每次都只减慢0.2的速率;大于1时,每次减1 */
function Slow(){
    if(e1.playbackRate<=1){
        e1.playbackRate-=0.2;
    }else{
        e1.playbackRate-=1;
    }
    document.getElementById("rate").innerHTML=fps2fps(e1.playbackRate);
}
/*慢进:小于等于1时,每次都只减慢0.2的速率;大于1时,每次减1 */
function Fast(){
    if(e1.playbackRate<1){
        e1.playbackRate+=0.2;
    }else{
        e1.playbackRate+=1;
    }
    document.getElementById("rate").innerHTML=fps2fps(e1.playbackRate);
}
function fps2fps(fps){
    if(fps<1){
        return fps.toFixed(1);
    }else{
        return fps;
    }
}
/*静音*/
function Muted(e){
    if(e1.muted){
        e1.muted=false;
        e.innerHRML="X";
        document.getElementById("volume").value=e1.volume;
    }else{
        e1.muted=true;
        e.innerHRML="x";
        document.getElementById("volume").value=0;
    }
}
/*调整音量*/
function Volume(e){
    if(e1.muted==true){
        e1.muted=false;
    }
    e1.volume=e.value;
}
/* 进度信息:控制进度条,并显示进度时间*/
function Progress(){
    var p1=document.getElementById("progress");
    p1.style.width=(e1.currentTime/e1.duration)*720+"px";
    document.getElementById("info").innerHTML=s2time(e1.currentTime)+"/"+s2time(e1.duration);
}
function s2time(s){
    var m=parseFloat(s/60).toFixed(0);
    s=parseFloat(s%60).toFixed(0);
    return (m<10? "0"+m:m)+":"+(s<10?"0"+s:s);
}
/* 网页加载完毕后,把进度处理函数添加至视频对象的timeupdate事件中*/
window.addEventListener("load",function(){
    e1.addEventListener("timeupdate",Progress);
});
/*给window.onload事件添加进度处理函数*/
window.addEventListener("load",Progress);

实现的功能:播放,暂停,快进,慢进,前进,后退,音量控制,进度条和时间显示。由此可见通过Audio或Video的属性和方法可以实现更复杂的功能。



 

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • html5+实现plus.io进行拍照和图片等获取
    使用Hbuilder开发工具开发:实现可对Android机进行控制和获取资源 说明:IO模块管理本地文件系统,用于对文件系统的目录浏览、文件的读取
  • HTML标签实现带动画的抖音LOGO效果

    HTML标签实现带动画的抖音LOGO效果
    先上结果,最终实现效果如下: 还原度应该还可以吧? 抖音Logo结构 想要用CSS来画抖音的Logo,前提要先了解它的构造,一定是一些几何图形
  • video.js支持m3u8格式直播的实现教程

    video.js支持m3u8格式直播的实现教程
    为什么要使用video.js? 1. PC端浏览器并不支持video直接播放m3u8格式的视频 2. 手机端各式各样的浏览器定制的video界面风格不统一,直接写原生
  • html5调用摄像头截图功能的介绍
    关于html5调用音视频等多媒体硬件的API已经很成熟,不过一直找不到机会把这些硬件转化为实际的应用场景,不过近年来随着iot和AI的浪潮,
  • 前端监听websocket消息并实时弹出的代码实例介绍

    前端监听websocket消息并实时弹出的代码实例介绍
    本文默认您已掌握react生态开发的相关技术,并熟练应用umiJS的原则上,请继续! 项目需求: 1、服务侧推送给消息给前端,前端需要展示在
  • HTML5新增内容和API介绍

    HTML5新增内容和API介绍
    classList 属性 该属性用于在元素中添加,移除及切换 CSS 类。 classList属性返回元素的类名,作为 DOMTokenList 对象: div id=div class=test1 test2clas
  • 使用canvas仿Echarts实现金字塔图的教程

    使用canvas仿Echarts实现金字塔图的教程
    最近公司项目都偏向于数字化大屏展示????,而这次发给我的项目原型中出现了一个金字塔图?????, 好巧不巧,由于我们的图表都是使用Ech
  • 基于HTML十秒做出淘宝页面的方法

    基于HTML十秒做出淘宝页面的方法
    十秒钟做出一个网页,可能大家看完会觉得有点标题党,其实不然,把别人的抠过来还是可以的 比如我这次先把淘宝的网页扣过来为例 第一
  • HTML5+CSS+JavaScript实现捉虫小游戏的代码

    HTML5+CSS+JavaScript实现捉虫小游戏的代码
    捉虫小游戏 首页展示: 选择昆虫: 效果展示: 有密集恐惧症的别玩哟、游戏永远不会停止 一直玩 项目源码结构: 图片和js以及css等基础
  • Canvas绘制像素风图片的代码

    Canvas绘制像素风图片的代码
    童年玩红白机。尤其国内的小霸王那段时光还记得么。那个马里奥大叔还记得么。 因为特别喜欢像素风的游戏从小到大一直都是,像素风本
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计