109 lines
2.7 KiB
JavaScript
Executable File
109 lines
2.7 KiB
JavaScript
Executable File
define(function(require, exports) {
|
|
var playStart = function(vedioInfo){
|
|
var $target = createDialog(vedioInfo.name);
|
|
var typeArr = {
|
|
'f4v' : 'flv',
|
|
'f4a' : 'flv',
|
|
'm4a' : 'mp3',
|
|
'aac' : 'mp3',
|
|
'ogg' : 'oga',
|
|
};
|
|
var type = typeArr[vedioInfo.ext] || vedioInfo.ext;
|
|
var playerOption = {
|
|
container:$target.get(0),
|
|
preload: 'none',
|
|
theme:'#f60',
|
|
loop: false,
|
|
autoplay:true,
|
|
lang: 'zh-cn',
|
|
//flv仅支持 H.264+AAC编码 https://github.com/Bilibili/flv.js/issues/47
|
|
video: {
|
|
url:vedioInfo.url,
|
|
type:type
|
|
},
|
|
// danmaku: {
|
|
// id:md5(vedioInfo.url),
|
|
// api:'https://api.prprpr.me/dplayer/'
|
|
// },
|
|
contextmenu: [
|
|
{
|
|
text: 'kodcloud官网',
|
|
link: 'https://kodcloud.com/'
|
|
}
|
|
]
|
|
};
|
|
if(window.DplayerSubtitle){
|
|
// 默认加载同名文件字幕;暂时只支持vtt格式 http://dplayer.js.org/#/home?id=options
|
|
playerOption.subtitle = {
|
|
url:core.path2url(vedioInfo.path+'.vtt')
|
|
}
|
|
}
|
|
var player = new DPlayer(playerOption);
|
|
resetSize(player,$target);
|
|
}
|
|
var resetSize = function(player,$player){
|
|
var reset = function(){
|
|
// $player.css({position:'absolute'});
|
|
var vWidth = $player.width();
|
|
var vHeight = $player.height();
|
|
var wWidth = $(window).width() * 0.9;
|
|
var wHeight = $(window).height() * 0.9;
|
|
if(vHeight >= wHeight){
|
|
vWidth = (wHeight * vWidth) / vHeight;
|
|
vHeight = wHeight;
|
|
}
|
|
if( vWidth >= wWidth ){
|
|
vHeight = (wWidth * vHeight) / vWidth;
|
|
vWidth = wWidth;
|
|
}
|
|
|
|
var dialog = $player.parents('.dplayer-dialog').data('artDialog');
|
|
var left = ($(window).width() - vWidth) / 2;
|
|
var top = ($(window).height() - vHeight) / 2;
|
|
// console.log(22,[vWidth,vHeight],[left,top]);
|
|
if(!dialog) return;
|
|
dialog.size(vWidth,vHeight).position(left,top);
|
|
}
|
|
// $player.css({position:'absolute'});
|
|
player.on('loadeddata',reset);
|
|
};
|
|
var createDialog = function(title,ext){
|
|
var size = {width:'70%',height:'60%'};
|
|
if(ext == 'mp3'){
|
|
size = {width:'320px',height:'420px'};
|
|
}
|
|
var dialog = $.dialog({
|
|
//id:'movie-dialog',
|
|
simple:true,
|
|
ico:core.icon('mp4'),
|
|
title:title,
|
|
width:size.width,
|
|
height:size.height,
|
|
content:'<div class="Dplayer"></div>',
|
|
resize:true,
|
|
padding:0,
|
|
fixed:true,
|
|
close:function(){
|
|
}
|
|
});
|
|
dialog.DOM.wrap.addClass('dplayer-dialog');
|
|
return dialog.DOM.wrap.find(".Dplayer");
|
|
}
|
|
|
|
|
|
var playReady = function(appStatic,vedioInfo){
|
|
require.async([
|
|
appStatic+'DPlayer/lib/flv.min.js',
|
|
appStatic+'DPlayer/lib/hls.min.js',
|
|
appStatic+'DPlayer/lib/dash.all.min.js',
|
|
appStatic+'DPlayer/DPlayer.min.css',
|
|
appStatic+'DPlayer/DPlayer.min.js',
|
|
],function(a){
|
|
playStart(vedioInfo);
|
|
});
|
|
}
|
|
return {
|
|
play:playReady
|
|
};
|
|
});
|