136 lines
3.9 KiB
JavaScript
136 lines
3.9 KiB
JavaScript
![]() |
kodReady.push(function(){
|
||
|
var playerSupport = function(){
|
||
|
var support = {
|
||
|
wap:{//移动端
|
||
|
music:['mp3','m4a','aac'],
|
||
|
movie:['mp4','m4v','mov']
|
||
|
},
|
||
|
ie:{
|
||
|
music:['mp3','m4a','aac'],
|
||
|
movie:['mp4','m4v','mov' , 'flv','f4v']
|
||
|
},
|
||
|
chrome:{//default chrome,firefox,edge
|
||
|
music:['mp3','wav','aac', 'm4a','oga','ogg','webma','flac'],
|
||
|
movie:['mp4','m4v','mov', 'f4v','flv','ogv','webm','webmv']
|
||
|
}
|
||
|
//safari 已经禁用了flash
|
||
|
};
|
||
|
var res = support.chrome;
|
||
|
if($.isWap && $.browserIS.ios){
|
||
|
res = support.wap;
|
||
|
}else if(!!window.ActiveXObject || "ActiveXObject" in window){
|
||
|
res = support.ie;
|
||
|
}
|
||
|
var inits = _.union(res.music, res.movie);
|
||
|
var fileExt = "{{config.fileExt}}" ? "{{config.fileExt}}".split(",") : [];
|
||
|
return _.intersection(inits, fileExt).join(',');
|
||
|
}
|
||
|
var myPlayer;
|
||
|
var loadMyPlayer = function(callback){
|
||
|
var appStatic = "{{pluginHost}}static/";
|
||
|
var appStaticDefault = "{{pluginHostDefault}}static/";
|
||
|
if(myPlayer){
|
||
|
callback(myPlayer);
|
||
|
}else{
|
||
|
// var top = ShareData.frameTop();
|
||
|
var top = window;
|
||
|
top.requireAsync(appStatic+'page.js',function(app){
|
||
|
if(!myPlayer){
|
||
|
myPlayer = app;
|
||
|
myPlayer.init(appStatic,appStaticDefault);
|
||
|
}
|
||
|
callback(myPlayer);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
if($.isWap && !window.jplayerInit){
|
||
|
window.jplayerInit = true;
|
||
|
$(".jPlayer-music .play-list .remove").trigger("click");
|
||
|
$.addStyle('.music-player-dialog{visibility:visible;}');
|
||
|
}
|
||
|
};
|
||
|
|
||
|
var musicExtArray = ['mp3','wav','aac','m4a','oga','ogg','webma','m3u8a','m3ua','flac'];
|
||
|
Events.bind('explorer.kodApp.before',function(appList){
|
||
|
appList.push({
|
||
|
name:'{{package.id}}',
|
||
|
title:'{{package.name}}',
|
||
|
sort:"{{config.fileSort}}",
|
||
|
ext:playerSupport(),
|
||
|
icon:'{{pluginHost}}static/images/icon.png',
|
||
|
callback:function(path,ext,name){
|
||
|
//移动端,非视频文件分享页面用跳转方式打开
|
||
|
var link = core.path2url(path,true);
|
||
|
if($.isWap && $.inArray(ext, musicExtArray) == -1){
|
||
|
return core.openWindow(link);
|
||
|
}
|
||
|
var list = [{
|
||
|
url:link,path:path,ext:ext,
|
||
|
name:name,//zip内文件播放
|
||
|
}];
|
||
|
loadMyPlayer(function(player){
|
||
|
player.play(list);
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// 移动端安卓首次打开播放器不自动播放问题处理;
|
||
|
if($.isWap){
|
||
|
$.addStyle('.music-player-dialog{visibility:hidden;}');
|
||
|
}
|
||
|
|
||
|
//音效播放绑定
|
||
|
Events.bind('playSound',function(url){
|
||
|
loadMyPlayer(function(player){
|
||
|
player.playSound(url);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
//多选含有音乐右键菜单
|
||
|
var menuShow = function(menu,app){
|
||
|
if(!menu.$menu.find('.playMedia').exists() ){
|
||
|
$.contextMenu.menuAdd({
|
||
|
'playMedia':{
|
||
|
name:LNG['explorer.addToPlay'],
|
||
|
className:"play-media hidden",
|
||
|
icon:"x-item-icon x-mp3",
|
||
|
accesskey: "p",
|
||
|
callback:function(){
|
||
|
var musicFiles = selectMusicFiles(app);
|
||
|
loadMyPlayer(function(player){
|
||
|
player.play(musicFiles);
|
||
|
});
|
||
|
},
|
||
|
}
|
||
|
},menu,'','.copy-to');
|
||
|
}
|
||
|
var musicFiles = selectMusicFiles(app);
|
||
|
var method = _.isEmpty(musicFiles) ? 'menuItemHide':'menuItemShow';
|
||
|
$.contextMenu[method](menu,'playMedia');
|
||
|
}
|
||
|
Events.bind({
|
||
|
'rightMenu.beforeShow@.menu-path-more':menuShow,
|
||
|
'rightMenu.beforeShow@.menu-toolbar-source-more':menuShow,
|
||
|
'rightMenu.beforeShow@.menu-path-guest-more':menuShow,
|
||
|
'rightMenu.beforeShow@.menu-toolbar-pathDefault-more':menuShow,
|
||
|
'rightMenu.beforeShow@.menu-simple-more':menuShow,
|
||
|
'rightMenu.beforeShow@.menu-toolbar-userRencent-more':menuShow,
|
||
|
});
|
||
|
|
||
|
var selectMusicFiles = function(app){
|
||
|
var list = [];
|
||
|
var listSelect = app.pathAction.makeParamSelect();
|
||
|
_.each(listSelect,function(item){
|
||
|
if(!item.ext || !_.includes(musicExtArray,item.ext)) return; // 过滤非音乐文件;
|
||
|
if(!app.pathAction.auth.canRead(item)) return; //必须有读取权限;
|
||
|
list.push({
|
||
|
url:core.path2url(item.path),
|
||
|
name:item.name,path:item.path,
|
||
|
ext:item.ext
|
||
|
});
|
||
|
});
|
||
|
return list;
|
||
|
}
|
||
|
});
|