zoukankan      html  css  js  c++  java
  • 音视频实例

     视频属性及方法实例:

    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
    <meta charset="UTF-8">
    <title>video属性测试</title>
    <script type="text/javascript">
        window.onload = function(){
    
            var el = document.getElementsByTagName('video');
    
    
            for(var i = 0 ; i < el.length ; i++){
                /*点击该视频获取视频如下信息*/
                el[i].index = i;
    
                el[i].onclick = function(e){
                    var e = event || event.window;
                    var timer = '媒体总时长 = ' + this.duration,
                        curTime = '当前播放的时长 = ' + this.currentTime,
                        end = '媒体是否播放完 = ' + this.ended,
                        paused = '媒体是否被暂停 = ' + this.paused,
                        startT = '媒体最早的播放时间 = ' +  this.startTime,
                        errorMsg = '发生错误情况下返回的错误代码 = ' + this.error,
                        curSrc = '返回当前正在播放或已加载的文件 = ' + this.currentSrc,
                        muted = '当前媒体是否静音 = ' + this.muted,
                        video =this.index + '
    ' + timer + '
    ' + curTime + '
    ' + end + '
    ' + paused + '
    ' + startT + '
    ' + errorMsg + '
    ' + curSrc + '
    ' + muted ;
    
                    console.log( video );
                    
                    e.cancelBubble = true ;
                }
    
                /*视频开始播放时触发的事件*/
                el[i].addEventListener('play',function(){
                    alert('某个视频已开始播放')
                })
                /*视频暂停时触发的事件*/
                el[i].addEventListener('pause',function(){
                    alert('某个视频已暂停播放')
                })
                /*视频播放完毕后触发的事件*/
                el[i].addEventListener('ended',function(){
                    alert('某个视频已播放完毕')
                })
                /*视频加载时触发的事件*/
                el[i].addEventListener('progress',function(){
                    console.log('某个视频正在加载');
                })
                /*视频等待加载下一帧时触发的事件*/
                el[i].addEventListener('waiting',function(){
                    alert('网速不给力呀'+'某个视频卡克了');
                })
                /*视频加载完成时间与总字节数时触发*/
                el[i].addEventListener('loadedmetadata',function(){
                    alert('某个视频已加载完毕')
                })
                /*当前媒体正在播放时触发的事件 此事件只触发一次*/
                el[i].addEventListener('playing',function(){
                    console.log('某个视频正在播放,亲不要急')
                })
                /*当视频音量改变或静音时触发*/
                el[i].addEventListener('volumechange',function(){
                    console.log('亲,某个视频音量在改变哟');
                })
                el[i].addEventListener('error',function(){
                    alert('亲,很遗憾某个视频加载失败了');
                })
            }
            var h5Video =  document.getElementById('h5_video'); 
            //点击document是 h5Video 此视频加载
            document.onclick = function(){
                alert('此时第四个视频将加载');
                h5Video.load();
            }
            //点击 此 h5Video 视频 时, 如果暂停就播放,如果播放就暂停
            h5Video.onclick = function(e){
                var e = event || event.window;
                //判断视频当前的状态
                if(this.paused){
                    //暂停后再播放让当前视频 currentTime 的此属性值为零,这样就可以从头播放了
                    //this.currentTime = 50;
                    this.play();
                }else{
                    this.pause();
                }
                
                e.cancelBubble = true ;
            }
            /*监听当前视频播放*/
            h5Video.addEventListener('timeupdate',function(){
                console.log(h5Video.currentTime);
            })
            /*播放开始时触发的事件*/
            
        }
    </script>
    <style type="text/css">
        body{
            background: rgba(0,0,0,0.9);
            color:#fff;
        }
        video{
            display: block;
            width:400px;
            margin:10px auto;
        }
        p{
            text-align: center;        
        }
    </style>
    </head>
    <body>
    <b>查看此页面是请打开控制台,很多数据会有变化显示。请随意点击视频,谢谢。点击document时,第四个视频加载。</b>
    <p>什么属性都不加</p>
    <video src="video/test1.mp4">
        该浏览器不支持视频
    </video>
    <p>controls :显示控制条,播放中控制条隐藏,鼠标放上显示</p>
    <video src="http://www.5942.name/h5_video.mp4" controls></video>
    <p>autoplay :视频载入完成后自动播放</p>
    <video src="http://www.5942.name/h5_video.mp4" autoplay></video>
    <p>preload :页面载入后载入视频 。取值:auto-载入视频 、 metadata-载入视频信息(时间、尺寸、第一帧、曲目等)、none-不载入</p>
    <video src="http://www.5942.name/h5_video.mp4" controls preload id="h5_video"></video>
    <p>loop :重播</p>
    <video src="http://www.5942.name/h5_video.mp4" loop autoplay></video>
    <p>poster :视频文件播放前显示图片</p>
    <video src="http://www.5942.name/h5_video.mp4" poster ></video>
    </body>
    </html>

    以上为音视频常用属性及事件,还有一些属性没有写出来,具体请观看W3CHTML

    实例展示请点击

    通常在做音视频的时候都要考虑一个问题,那就是浏览器是否支持你的媒体资源的格式。

    所以很多时候我们都需要先去检测一下这个问题,这个时候就用到了canPlayType() 。

    此方法可以检测浏览器是否能播放指定的音频/视频类型,跟随的返回值:

    "probably" - 浏览器最可能支持该音频/视频类型
    "maybe" - 浏览器也许支持该音频/视频类型
    "" - (空字符串)浏览器不支持该音频/视频类型

    实例:

    var video=document.getElementById("video");
    var support=video.canPlayType('video/mp4; codecs="theora, vorbis"');
    alert(support)

    此方法参数取值:

    规定要检测的音频/视频类型。
    常用值:
    video/ogg
    video/mp4
    video/webm
    audio/mpeg
    audio/ogg
    audio/mp4
    常用值,包括编解码器:
    video/ogg; codecs="theora, vorbis"
    video/mp4; codecs="avc1.4D401E, mp4a.40.2"
    video/webm; codecs="vp8.0, vorbis"
    audio/ogg; codecs="vorbis"
    audio/mp4; codecs="mp4a.40.5"
    注释:如果包含编解码器,则只能返回 "probably"。

    参考文档:W3SCHOOL

  • 相关阅读:
    剑指Offer-二叉搜索树与双向链表
    剑指Offer-数组中只出现一次的数字
    剑指Offer-栈的压入、弹出序列
    剑指Offer-反转链表
    剑指Offer-和为S的两个数字
    剑指Offer-数字在排序数组中出现的次数
    剑指Offer-二叉树的下一个结点
    Notepad++中实现Markdown语法高亮与实时预览
    centos7安装activemq5.15
    博客园展示音频视频
  • 原文地址:https://www.cnblogs.com/langli/p/3448675.html
Copyright © 2011-2022 走看看