var RUN = {
isMobile: function () {
var userAgentInfo = navigator.userAgent,
Agents = [
'Android',
'iPhone',
'SymbianOS',
'Windows Phone',
'iPad',
'iPod',
],
flag = false
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = true
break
}
}
return flag
},
isIE: function () {
if (!!window.ActiveXObject || 'ActiveXObject' in window) return true
else return false
},
adaptive: function () {
//移动端适配
window['adaptive'].desinWidth = 750
window['adaptive'].baseFont = 28
window['adaptive'].setRemCallback = function () {}
window['adaptive'].init()
},
videoListOpen: function (dom, data, size, cb) {
console.log("d", dom, data, size)
var videoTitle = data.title || ""
var videoType = data.videoType || ""
if (
data.m4v == '' ||
data.m4v == null ||
data.m4v == 'undefined'
) {
alert("请维护视频链接")
return
}
if (
data.poster == '' ||
data.poster == null ||
data.poster == 'undefined'
) {
data.poster = 'https://crculture.crc.com.cn//assets/images/video-def.jpg'
}
var html =
'
' + videoTitle + '
' + videoType + '' +
'
' +
'
'+
''+
'
'+
'
'
// $('#my-video-ctn-' + dom.attr('data-id')).remove()
if($("#my-video-ctn").length<1){
$('body').append(html);
RUN.langChange();
var player = videojs('my-video');
RUN.deleteTitle();
$("#my-video-ctn").show();
$('.jp-mask').show()
}
else{
setTimeout(function(){
RUN.langChange();
var player = videojs('my-video');
v_url = data.m4v;
img_url = data.poster;
var typeStr ='application/x-mpegURL';
if(!(v_url.indexOf(".m3u8")>0 && v_url.indexOf(".mp4")<0)){
var typeStr ='video/mp4'
}
// 切换到新的 M3U8 资源
player.src({
type: typeStr,
src: v_url
});
player.poster(img_url);
// 重新加载播放器以应用新的源
player.load();
$("#my-video-ctn").show();
$('.jp-mask').show();
RUN.deleteTitle();
})
}
$('.jp-mask,.jp-close')
.off()
.on('click', function () {
// $('#my-video-ctn-' + dom.attr('data-id')).remove()
player = videojs('my-video');
$("#my-video-ctn").hide();
player.pause();
$('.jp-mask').hide()
RUN.deleteTitle();
// tools.enableScroll()
})
if (RUN.isMobile()) {
var domPlay = $('#my-video-ctn')
$('#my-video-ctn').addClass("jp-video-mob");
if(!($('#my-video-ctn').hasClass("jp-video-mob"))){
$('#my-video-ctn').addClass("jp-video-mob")
}
$(".jp-video-open").width("100%").css({
"margin-left": 0,
"left": 0,
"margin-top":0
});
var calVid = (size.width / size.height);
var mHeight = ( 100 / calVid )+"vw";
$("#my-video-size").css("width","100%");
$("#my-video-size").css("height",mHeight);
} else {
if( $('#my-video-ctn').hasClass("jp-video-mob")){
$('#my-video-ctn').removeClass("jp-video-mob")
}
$("#my-video-size").css("width",size.width);
$("#my-video-size").css("height",size.height);
$('.jp-video-open').css({
width: size.width,
marginLeft: (size.width / 2) * -1,
marginTop: (size.height / 2) * -1 - 40,
left:"50%"
})
}
},
langChange : function(){
videojs.addLanguage('zh-CN', {
"Play": "播放",
"Pause": "暂停",
"Current Time": "当前时间",
"Duration": "时长",
"Remaining Time": "剩余时间",
"Stream Type": "媒体流类型",
"LIVE": "直播",
"Loaded": "加载完毕",
"Progress": "进度",
"Fullscreen": "全屏",
"Non-Fullscreen": "退出全屏",
"Mute": "静音",
"Unmute": "取消静音",
"Playback Rate": "播放速度",
"Subtitles": "字幕",
"subtitles off": "关闭字幕",
"Captions": "内嵌字幕",
"captions off": "关闭内嵌字幕",
"Chapters": "节目段落",
"Close Modal Dialog": "关闭弹窗",
"Descriptions": "描述",
"descriptions off": "关闭描述",
"Audio Track": "音轨",
"You aborted the media playback": "视频播放被终止",
"A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
"No compatible source was found for this media.": "无法找到此视频兼容的源。",
"The media is encrypted and we do not have the keys to decrypt it.": "视频已加密,无法解密。",
"Play Video": "播放视频",
"Close": "关闭",
"Modal Window": "弹窗",
"This is a modal window": "这是一个弹窗",
"This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按键或启用关闭按钮来关闭此弹窗。",
", opens captions settings dialog": ", 开启标题设置弹窗",
", opens subtitles settings dialog": ", 开启字幕设置弹窗",
", opens descriptions settings dialog": ", 开启描述设置弹窗",
", selected": ", 选择",
"captions settings": "字幕设定",
"Audio Player": "音频播放器",
"Video Player": "视频播放器",
"Replay": "重播",
"Progress Bar": "进度小节",
"Volume Level": "音量",
"subtitles settings": "字幕设定",
"descriptions settings": "描述设定",
"Text": "文字",
"White": "白",
"Black": "黑",
"Red": "红",
"Green": "绿",
"Blue": "蓝",
"Yellow": "黄",
"Magenta": "紫红",
"Cyan": "青",
"Background": "背景",
"Window": "视窗",
"Transparent": "透明",
"Semi-Transparent": "半透明",
"Opaque": "不透明",
"Font Size": "字体尺寸",
"Text Edge Style": "字体边缘样式",
"None": "无",
"Raised": "浮雕",
"Depressed": "压低",
"Uniform": "均匀",
"Dropshadow": "下阴影",
"Font Family": "字体库",
"Proportional Sans-Serif": "比例无细体",
"Monospace Sans-Serif": "单间隔无细体",
"Proportional Serif": "比例细体",
"Monospace Serif": "单间隔细体",
"Casual": "舒适",
"Script": "手写体",
"Small Caps": "小型大写字体",
"Reset": "重启",
"restore all settings to the default values": "恢复全部设定至预设值",
"Done": "完成",
"Caption Settings Dialog": "字幕设定视窗",
"Beginning of dialog window. Escape will cancel and close the window.": "开始对话视窗。离开会取消及关闭视窗",
"End of dialog window.": "结束对话视窗"
});
},
deleteTitle:function(){
setTimeout(function(){
$(".vjs-big-play-button").attr("title","");
$(".vjs-control.vjs-button").attr("title","");
$(".vjs-control-text").html("");
},100)
var playButton = document.querySelector('.vjs-control.vjs-button');
// 检查按钮是否存在
if (playButton) {
// 移除或隐藏按钮hover时的提示语
playButton.addEventListener('mouseenter', function() {
$(".vjs-big-play-button").attr("title","");
$(".vjs-control.vjs-button").attr("title","");
$(".vjs-control-text").html("");
});
}
},
videoPlayWithClickNum: function (data, siteId) {
// var videoTitle = data.title || ""
// var videoType = data.videoType || ""
if (
data.poster == '' ||
data.poster == null ||
data.poster == 'undefined'
) {
data.poster = 'https://crculture.crc.com.cn//assets/images/video-def.jpg'
}
var html = '
'+
'
'
if($("#run-video-open").length<1){
$('body').append(html);
RUN.langChange();
if (player) {
player.dispose();
player = null;
}
var player = videojs('my-video');
RUN.deleteTitle();
$("#run-video-open").show();
$('.run-mask').show()
if(siteId){
var clientType = 1;
if (RUN.isMobile()) {
clientType = 2;
}
var videoSrc= data.m4v;
var vIdStr=videoSrc.split("?")[1];
var videoid="";
if(vIdStr){
videoid=vIdStr.split("=")[1];
}
if(videoid){
player.on('play', function() {
console.log('视频开始播放!');
$.ajax({
type: "POST",
url: "/rcms-external-rest/rm/addClick",
data: {
"siteId": siteId,
"id": videoid,
"type": "3",
"clientType": clientType,
"webHost": window.location.host
},
success: function(res) {
if (res.code === "S1A00000") {
console.log(videoid+'埋点成功!');
}
}
})
})
}
}
}
else{
setTimeout(function(){
RUN.langChange();
if (player) {
player.dispose();
player = null;
}
var player = videojs('my-video');
v_url = data.m4v;
img_url = data.poster;
var typeStr ='application/x-mpegURL';
if(!(v_url.indexOf(".m3u8")>0 && v_url.indexOf(".mp4")<0)){
var typeStr ='video/mp4'
}
// 切换到新的 M3U8 资源
player.src({
type: typeStr,
src: v_url
});
player.poster(img_url);
// 重新加载播放器以应用新的源
player.load();
$("#run-video-open").show();
$('.run-mask').show();
RUN.deleteTitle();
if(siteId){
var clientType = 1;
if (RUN.isMobile()) {
clientType = 2;
}
var videoSrc= data.m4v;
var vIdStr=videoSrc.split("?")[1];
var videoid="";
if(vIdStr){
videoid=vIdStr.split("=")[1];
}
if(videoid){
player.on('play', function() {
console.log('视频开始播放!');
$.ajax({
type: "POST",
url: "/rcms-external-rest/rm/addClick",
data: {
"siteId": siteId,
"id": videoid,
"type": "3",
"clientType": clientType,
"webHost": window.location.host
},
success: function(res) {
if (res.code === "S1A00000") {
console.log(videoid+'埋点成功!');
}
}
})
})
}
}
})
}
$('.run-mask,.run-open-close')
.off()
.on('click', function () {
// player = videojs('my-video');
if (player) player.dispose();
$("#run-video-open").remove();
// player.pause();
$('.run-mask').remove()
// RUN.deleteTitle();
})
},
// 由于有些旧的写法是不分PC与移动端,全都统计在pc端中,且统计的是文章的访问量,并不是视频自身
videoPlayWithClickNumOld: function (data, siteId, params) {
// var videoTitle = data.title || ""
// var videoType = data.videoType || ""
if (
data.poster == '' ||
data.poster == null ||
data.poster == 'undefined'
) {
data.poster = 'https://crculture.crc.com.cn//assets/images/video-def.jpg'
}
var html = '
'+
'
'
if($("#run-video-open").length<1){
$('body').append(html);
RUN.langChange();
if (player) {
player.dispose();
player = null;
}
var player = videojs('my-video');
RUN.deleteTitle();
$("#run-video-open").show();
$('.run-mask').show()
if(siteId){
var clientType = 1;
if (RUN.isMobile()) {
clientType = 2;
}
var videoSrc= data.m4v;
var vIdStr=videoSrc.split("?")[1];
var videoid="";
if(vIdStr){
videoid=vIdStr.split("=")[1];
}
if(videoid){
player.on('play', function() {
console.log('视频开始播放!');
$.ajax({
type: "POST",
url: "/rcms-external-rest/rm/addClick",
data: params,
success: function(res) {
if (res.code === "S1A00000") {
console.log(videoid+'埋点成功!');
}
}
})
})
}
}
}
else{
setTimeout(function(){
RUN.langChange();
if (player) {
player.dispose();
player = null;
}
var player = videojs('my-video');
v_url = data.m4v;
img_url = data.poster;
var typeStr ='application/x-mpegURL';
if(!(v_url.indexOf(".m3u8")>0 && v_url.indexOf(".mp4")<0)){
var typeStr ='video/mp4'
}
// 切换到新的 M3U8 资源
player.src({
type: typeStr,
src: v_url
});
player.poster(img_url);
// 重新加载播放器以应用新的源
player.load();
$("#run-video-open").show();
$('.run-mask').show();
RUN.deleteTitle();
if(siteId){
var clientType = 1;
if (RUN.isMobile()) {
clientType = 2;
}
var videoSrc= data.m4v;
var vIdStr=videoSrc.split("?")[1];
var videoid="";
if(vIdStr){
videoid=vIdStr.split("=")[1];
}
if(videoid){
player.on('play', function() {
console.log('视频开始播放!');
$.ajax({
type: "POST",
url: "/rcms-external-rest/rm/addClick",
data:params,
success: function(res) {
if (res.code === "S1A00000") {
console.log(videoid+'埋点成功!');
}
}
})
})
}
}
})
}
$('.run-mask,.run-open-close')
.off()
.on('click', function () {
// player = videojs('my-video');
if (player) player.dispose();
$("#run-video-open").remove();
// player.pause();
$('.run-mask').remove()
// RUN.deleteTitle();
})
}
}