欢迎使用CSDN-markdown编辑器

转自:http://blog.csdn.net/wanlong360599336/article/details/46474415

HTML5音频播放,歌词同步,及视频播放功能(JPlayer、JWPlayer、VideoJS)
最近项目中用到音频视频播放,所以就写了一个demo:
这个是JPlayer插件的视频播放:

这个是音频播放,歌词同步:

[html] view plain copy print?
  
  
  
  
  
      
      
       
      
      
      
      
      
      
      
      
  
       
        
        
       
         videojs.options.flash.swf = "VideoJS/video-js.swf";  
  
  
        
      
  
      
    * {  
    margin: 0;  
    padding: 0;  
    outline:none;  
    }  
    ul, ol, dl {  
        list-style: none;  
    }  
    .content {width: 402px;height:200px;overflow:hidden;padding:50px;}  
    #lrc_list{margin:10px auto;color:white;}  
    #lrc_list li{font:normal 14px/2.1 ‘microsoft yahei’;text-align:center;}  
    #lrc_list li.hover {color: green;font-weight:bold;}  
  
  
      
  
        var songId = 0; //歌曲序号  
        var song = ‘video.mp4’; //歌曲名  
        var lrc = ‘/Lrc/火烧的寂寞.lrc’; //歌词  
        var isPlay = false; //是否正在播放  
        var time = “”; //歌词返回时间  
        var htmlobj; //歌词html  
        var currentPro; //当前进度  
  
        //歌曲绑定  
        var songList = new Array();  
        songList.push(“/Audio/video.mp4”);  
        songList.push(“/Audio/火烧的寂寞.mp3”);  
        songList.push(“/Audio/走在冷风中-刘思涵.mp3”);  
        songList.push(“/Audio/父亲.mp3”);  
        songList.push(“/Audio/匆匆那年.mp3”);  
  
        (document).ready(function () {    
                
            //播放器初始化
(‘#jp_sound’).jPlayer({  
                ready: function () {  
                    (this).jPlayer(‘setMedia’, { title: song, m4v: songList[0], poster: ‘/Image/1.jpg’ });    
                },    
                supplied: ’ m4v,mp3’,    
                swfPath: ‘/JPlayer/’,    
                wmode: ‘window’,    
                autoBlur: false,    
                smoothPlayBar: true,    
                keyEnabled: true,    
                solution: ‘flash, html’,    
                preload: ‘auto’,    
                size: {    
                    width: “550px”,    
                    height: “360px”    
                    //cssClass: “.blur”   //定义播放窗的背景样式    
                },    
                ended: function () {//结束事件    
                    if (document.getElementById(‘CircleAudio’).checked) {
(‘#jp_sound’).jPlayer(‘play’);  
                        $(“#lrc_list”).removeAttr(“style”).html(“

  • 歌曲播放完毕…
  • “);  
                            //点击开始方法调用lrc。start歌词方法 返回时间time  
                             .lrc.start( (‘#lrc_content’).val(), function () {  
                                return time;  
                            });  
                        }  
                        else {  
                            NextSong();  
                        }  
                    },  
                    volume: 0.5,  
                    timeupdate: function (event) {//时间更改事件  
                        time = event.jPlayer.status.currentTime;  
                         ("#time").html(" " +.jPlayer.convertTime(event.jPlayer.status.currentTime) + “/” +  .jPlayer.convertTime(event.jPlayer.status.duration)); (“#currentProgress”).css(“width”, event.jPlayer.status.currentPercentRelative + “%”);  
                        currentPro = event.jPlayer.status.currentPercentRelative;  
                    }  
                });  
            })  
      
      
            //播放  
            function Play() {  
                isPlay = true;  
                 (‘#jp_sound’).jPlayer(‘play’);(“#playSong”).text(“正在播出:” + song);  
    //            if (lrc != “”)  
    //                ChangeLrc(lrc);  
    //            //点击开始方法调用lrc。start歌词方法 返回时间time  
    //             .lrc.start( (‘#lrc_content’).val(), function () {  
    //                return time;  
    //            });  
      
            }  
            //停止  
            function Stop() {  
                isPlay = false;  
                 (‘#jp_sound’).jPlayer(‘stop’);(“#time”).html(“  00:00/00:00”);  
                 (“#playSong”).text(“”);(“#lrc_list”).hide();  
                // (“#jp_sound”).jPlayer(“destroy”);//销毁实例    
            }    
            //暂停    
            function Pause() {
    (‘#jp_sound’).jPlayer(‘pause’);  
            }  
            //静音  
            function StopAudio() {  
                 (‘#jp_sound’).jPlayer(‘mute’);    
            }    
            //恢复音量    
            function RecoverAudio() {
    (‘#jp_sound’).jPlayer(‘unmute’);  
            }  
            //选择某个进度播放  
            function SetProgress(event) {  
                if (isPlay == true) {  
                    var precent = event.clientX / 551;  
                     (“#jp_sound”).jPlayer(“playHead”, precent * 100);(‘#jp_sound’).jPlayer(‘play’);  
                }  
            }  
            //是否循环播放  
            function CircleAudio() {  
                if (document.getElementById(‘CircleAudio’).checked) {  
                    if (isPlay == true)  
                         (‘#jp_sound’).jPlayer(‘play’);    
                }    
            }    
            //上一首    
            function PreSong() {    
                if (isPlay == true) {    
                    songId–;    
                    if (songId < 0) {    
                        songId = songList.length - 1;    
                    }    
                    PlaySong(songId);    
                }    
            }    
            //下一首    
            function NextSong() {    
                if (isPlay == true) {    
                    songId++;    
                    if (songId >= songList.length) {    
                        songId = 0;    
                    }    
                    PlaySong(songId);    
                }    
            }    
            //快进    
            function FastForward() {    
                if (isPlay == true) {    
                    var pogress = currentPro + 3;    
                    if (pogress >= 100)    
                        NextSong();
    (“#jp_sound”).jPlayer(“playHead”, pogress);  
                     (‘#jp_sound’).jPlayer(‘play’);    
                }    
            }    
            //后退    
            function BackAway() {    
                if (isPlay == true) {    
                    var pogress = currentPro - 3;    
                    if (pogress <= 0)    
                        PreSong();
    (“#jp_sound”).jPlayer(“playHead”, pogress);  
                     (‘#jp_sound’).jPlayer(‘play’);    
                }    
            }    
            //播放某一首歌曲    
            function PlaySong(id) {    
                var songAddr;    
                var img;    
                var format;    
                switch (id) {    
                    case 0:    
                        song = ‘video.mp4’;    
                        songAddr = songList[0];    
                        img = ‘/Image/1.jpg’;    
                        lrc = “”;    
                        format = “mp4”;    
                        break;    
                    case 1:    
                        song = ‘火烧的寂寞.mp3’;    
                        songAddr = songList[1];    
                        img = ‘/Image/2.jpg’;    
                        lrc = ‘/Lrc/火烧的寂寞.lrc’;    
                        format = “mp3”;    
                        break;    
                    case 2:    
                        song = ‘走在冷风中-刘思涵.mp3’;    
                        songAddr = songList[2];    
                        img = ‘/Image/3.jpg’;    
                        lrc = ‘/Lrc/走在冷风中.lrc’;    
                        format = “mp3”;    
                        break;    
                    case 3:    
                        song = ‘父亲.mp3’;    
                        songAddr = songList[3];    
                        img = ‘/Image/4.jpg’;    
                        lrc = ‘/Lrc/父亲.lrc’;    
                        format = “mp3”;    
                        break;    
                    case 4:    
                        song = ‘匆匆那年.mp3’;    
                        songAddr = songList[4];    
                        img = ‘/Image/5.jpg’;    
                        lrc = ‘/Lrc/匆匆那年.lrc’;    
                        format = “mp3”;    
                        break;    
                    default:    
                        break;    
                }    
                if (lrc != “”)    
                    ChangeLrc(lrc);    
                //点击开始方法调用lrc。start歌词方法 返回时间time
    .lrc.start( (‘#lrc_content’).val(), function () {    
                    return time;    
                });    
                SetPlayer(format, song, songAddr, img);    
                Play();    
            }    
            //设置Media    
            function SetPlayer(format, song, songAddr, img) {
    (‘#jp_sound’).jPlayer(“clearMedia”);  
                if (format == “mp3”)  
                     (‘#jp_sound’).jPlayer(‘setMedia’, { title: song, mp3: songAddr, poster: img });    
                else if (format == “mp4”) {
    (‘#jp_sound’).jPlayer(‘setMedia’, { title: song, m4v: songAddr, poster: img });  
                     (‘#lrc_list’).hide();     
                }    
            }    
            //气泡显示title    
            function ShowTip(id) {    
                layer.tips(
    (“#” + id).text(), ‘#’ + id, { tips: 3, time: 1500 });  
            }  
            //更换歌词  
            function ChangeLrc(lrc) {  
                if (lrc != “”) {  
                    var text = Ajax(lrc);  
                    if (text == “0”)  
                        alert(“获取歌词失败!”);  
                    else {  
                        $(‘#lrc_content’).html(text);  
                    }  
                }  
            }  
            function Ajax(url, fnSucc, fnFaild) {  
                //1.创建ajax对象  
                if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari  
                    var oAjax = new XMLHttpRequest();  
                }  
                else {// code for IE6, IE5  
                    var oAjax = new ActiveXObject(“Microsoft.XMLHTTP”);  
                }  
                //2.链接服务器(打开服务器的连接)  
                //open(方法,文件名,异步传输)  
                oAjax.open(‘GET’, url, false);  
                //3.发送  
                oAjax.send();  
                //4.接收返回  
                if (oAjax.readyState == 4) {  
                    if (oAjax.status == 404)  
                        return “0”;  
                    else  
                        return oAjax.responseText;  
                }  
                else {  
                    return “0”;  
                }  
            }  
      
      
      
    JPlayer插件:  
        
      
      
        
    •   
              
    •   
          
      
      
       
      
      
      
      
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值