zoukankan      html  css  js  c++  java
  • 腾讯QQ音乐网页版 音频初始化模块解压混淆js源码

    define("js/view/playerBar.js",function(t,e,o){
        var i = t("js/lib/zepto.js"),
            a = t("js/lib/music.js"),
            n = t("js/lib/backbone.js"),
            s = t("js/ui/timeFormat.js"),
            d = n.View.extend({
                el:"#player_bar",
                initialize:function(){
                    var t = this;
                        this.listenTo(this.model,"change:playId",this.changeId),
                        this.listenToOnce(this.model,"change:playId",this.showBtn),
                        this.listenTo(this.model,"change:index",this.changeIndex),
                        this.initAudio(),
                        i("#player_bar").tap(function(e){
                            e.stopPropagation(),
                            e.preventDefault();
                            var o=t.model.getSong();
                            return o ? (
                                e.target.className.indexOf("btn_download")>=0
                                ?
                                (t.download(),a.tj.sendClick("song.downloadicon"))
                                : 
                                "btn_status"==e.target.id
                                ?
                                (t.togglePlay(),a.tj.sendClick("song.playicon"))
                                :
                                a.router.navigate("player",{trigger:!0}),void 0
                                ) :
                                !1
                        }),
                        i("#player_bar .poster").on("error",function(){
                            this.src="http://imgcache.gtimg.cn/music/mobile/css/img/music_0949f22.png"
                        })
                },
                initAudio:function(){
                    var t=this;
                    i(this.model.get("audio"))
                    .on("play",function(){
                        SPD.pointMark("songload"),
                        i("#btn_status").attr("class","btn_pause"),
                        i(".cover_pic").removeClass("pause"),
                        t.model.set("status",1),
                        i("video")[0]&&i("video")[0].pause()
                    })
                    .on("pause",function(){
                        i("#btn_status").attr("class","btn_play"),
                        i(".cover_pic").addClass("pause"),
                        t.model.set("status",0)
                    })
                    .on("timeupdate",function(){
                        var e=t.model.get("audio").currentTime,
                            o=t.model.get("audio").duration;
                            i(".has_play").css({100*(e/o)+"%"}),
                            i("#current_time").text(s(e));
                        try{
                            var a=t.model.get("audio").buffered.end(0);
                            i(".has_load").css({100*(a/o)+"%"})
                        }
                        catch(n){}
                    })
                    .on("ended",function(){
                        var e=t.model.get("index");
                        e++,
                        e>=t.model.get("playList").length&&(e=0),
                        t.model.set("playId",t.model.get("playList").at(e).cid)
                    })
                    .on("canplay",function(){
                        t.play()
                    })
                    .on("error",function(t){
                        a.tip("歌曲加载失败 T T 请稍候重试!"),
                        a.tj.sendClick("song.playerror"),
                        console.log(t)
                    })
                    .on("durationchange",function(){
                        i("#total_time").text(s(t.model.get("audio").duration))
                    })
                },
                togglePlay:function(){
                    this.model.get("audio").paused?this.play():this.pause()
                },
                showBtn:function(){
                    i("#btn_status,#player_bar .btn_download").show()
                },
                changeId:function(){
                    var t=this.model.getSong();
                    this.model.set("index",this.model.get("playList").indexOf(t)),
                    i(".has_play,.has_load").css({"0%"});
                    var e="http://"+a.audioServer+".stream.qqmusic.qq.com/"+(t.get("songid")||"C100"+t.get("songmid"))+".m4a?fromtag=30";
                    this.model.get("audio").src=e,
                    0!=this.model.get("audio").readyState&&this.model.get("audio").load();
                    var o=t.get("albumid"),
                        n="http://imgcache.qq.com/music/photo/album/"+o%100+"/90_albumpic_"+o+"_0.jpg";
                        i("#player_bar .poster").attr("src",n),
                        i("#player_bar .song").html(t.get("songname")),
                        i("#player_bar .singer").html(t.get("singername")),
                        a.tj.sendClick("song.playtimes")
                },
                play:function(){
                    this.model.get("audio").play()
                },
                pause:function(){
                    this.model.get("audio").pause()
                },
                stop:function(){
                    this.pause()
                },
                speed:function(){
                    this.model.get("audio").currentTime+=10
                },
                openSingle:function(){
                    new playerBox({model:this.model})
                },
                changeIndex:function(){
                    this.model.set("playId",this.model.get("playList").at(this.model.get("index")).cid)
                },
                download:function(){
                    var e=this,
                        o=t("js/ui/dialog.js");
                        o.opendDialog(
                            "提示",
                            "网页版暂不支持下载,你可以在手机客户端免费下载此歌曲",
                            "在手机QQ音乐中下载",
                            function(){
                                var i=t("js/ui/openAppSong.js");
                                i(e.model.getSong()),
                                o.hide()
                            }
                        )
                }
            });
        o.exports=d
    });/*  |xGv00|c0a42f805c79489f9535548049f674e3 */
  • 相关阅读:
    tornado硬件管理系统-数据存储与表格实时监控(8)
    db2 内存研究
    Oracle dml开始到commit期间的流程
    用户界面与业务逻辑的分离
    计算器核心算法——终结版
    计算器核心算法——中缀表达式转为后缀表达式
    计算器核心解析算法(上)
    Qt中的字符串类
    初探Qt中的消息处理
    计算器界面代码重构
  • 原文地址:https://www.cnblogs.com/owys/p/4595343.html
Copyright © 2011-2022 走看看