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({width:100*(e/o)+"%"}),
i("#current_time").text(s(e));
try{
var a=t.model.get("audio").buffered.end(0);
i(".has_load").css({width: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({width:"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 */

腾讯QQ音乐网页版 音频初始化模块解压混淆js源码的更多相关文章

  1. 实现类似 QQ音乐网页版 的单页面总结

    最近需要对创业团队的网站进行改版,而我负责前端设计和实现. 下面是一些总结与体会: 当设计完成之前,我就跟和我配合的Java 后台说用iframe实现,结果说麻烦不肯,到最后突然对我说还是用ifram ...

  2. 一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  3. 原创:用python把链接指向的网页直接生成图片的http服务及网站(含源码及思想)

    原创:用python把链接指向的网页直接生成图片的http服务及网站(含源码及思想) 总体思想:     希望让调用方通过 http调用传入一个需要生成图片的网页链接生成一个网页的图片并返回图片链接 ...

  4. 微信小程序版博客——开发汇总总结(附源码)

    花了点时间陆陆续续,拼拼凑凑将我的小程序版博客搭建完了,这里做个简单的分享和总结. 整体效果 对于博客来说功能页面不是很多,且有些限制于后端服务(基于ghost博客提供的服务),相关样式可以参考截图或 ...

  5. HTML5网页录音和压缩,边猜边做..(附源码)

    宣传一下自己的qq群: (暗号:C#交流) 欢迎喜欢C#,热爱C#,正在学习C#,准备学习C#的朋友来这里互相学习交流,共同进步 群刚建,人不多,但是都是真正热爱C#的 我也是热爱C#的 希望大家可以 ...

  6. iOS电商常见动画与布局、微信悬浮窗、音乐播放器、歌词解析、拖动视图等源码

    iOS精选源码 MXScroll 介绍 混合使用UIScrollView ios 电商demo(实现各种常见动画效果和页面布局) 一行代码集成微信悬浮窗 可拖动,大小的视图,可放置在屏幕边缘. 在使用 ...

  7. Vue.js源码解析-Vue初始化流程

    目录 前言 1. 初始化流程概述图.代码流程图 1.1 初始化流程概述 1.2 初始化代码执行流程图 2. 初始化相关代码分析 2.1 initGlobalAPI(Vue) 初始化Vue的全局静态AP ...

  8. 从网易云音乐网页版无登陆下载MP3的办法

    用chrome浏览器就能办到 现在,你还为下载不到满意的音乐而苦恼吗?

  9. 看看腾讯是怎么做产品设计分析的 - 腾讯QQ音乐业务产品规划

随机推荐

  1. 用Maven打包成EAR远程部署JBoss(二)——部署到远程JBoss

    用Maven打包成EAR远程部署JBoss(一)讲了如何使用Maven打包,可是在文章的最后也留下了一个问题,那就是如何将包部署到远程的JBoss中呢?近期在对之前的学习进行总结,发现少了这样一篇重要 ...

  2. CoffeeScript NgComponent

    Angular遇上CoffeeScript - NgComponent封装 CoffeeScript是基于JavaScript的一门扩展小巧语言,它需要编译成JavaScript,然后再运行与浏览器或 ...

  3. NSIS:超级轻量皮肤SkinH

    原文 NSIS:超级轻量皮肤SkinH 这虽然是一个其他软件的皮肤控件,不过拿来用到NSIS上还是不错的.控件加皮肤文件只有100多K,可以说是比较难得了! 看一下效果:   代码示例: 01 #皮肤 ...

  4. HDU 3172 Virtual Friends(并用正确的设置检查)

    职务地址:pid=3172">HDU 3172 带权并查集水题.每次合并的时候维护一下权值.注意坑爹的输入. . 代码例如以下: #include <iostream> # ...

  5. ASP.NET MVC5 插件机制中插件的简单实现

    Autofac 依赖注入 ASP.NET MVC5 插件机制中插件的简单实现 一.前言 由于项目业务复杂,创建了多个插件并把他们放在了不同的项目中,项目使用AutoFac做的IOC:但是主项目可以注入 ...

  6. 初学git && 使用总结

    参考文章:http://www.ruanyifeng.com/blog/2014/06/git_remote.html git基础操作   http://www.ruanyifeng.com/blog ...

  7. JAVA多线程编程(详细例子)

    http://wenku.baidu.com/view/e4afbf36a32d7375a417808b.html

  8. 第16章 观察者模式(Oberver Pattern)

    原文  第16章 观察者模式(Oberver Pattern) 观察者模式  概述:   在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依 ...

  9. 收藏的一些javascript片段

    原文:收藏的一些javascript片段 学习js也很有一段时间,收集了一些js的片段.特地整理排版了一下,以一个js初学者的视界来分析注释了这些代码段,暂且不去讨论它的性能和优化问题,相信会对一些初 ...

  10. js手机对应的多级导航分享

    js移动导航对应,您可以使用自适应时屏幕,当小画面在一定程度上的网站.使导航出现,The navigation effects such as the following figures:多级导航! ...