Skip to content

Commit

Permalink
fix(xgplayer/[control/textTrack.js, proxy.js]): suitability support f…
Browse files Browse the repository at this point in the history
…or textTrack in firefox
  • Loading branch information
zhangxin92 committed Aug 3, 2018
1 parent fe22152 commit 3afda8d
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion packages/xgplayer/browser/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/xgplayer/dist/index.js

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions packages/xgplayer/src/control/textTrack.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import Player from '../player';

let textTrack = function () {
if(navigator.userAgent.indexOf('Chrome') === -1) {
return
}
let player = this, util = Player.util, sniffer = Player.sniffer;
let ul = util.createDom('xg-textTrack', '', {tabindex: 7}, 'xgplayer-textTrack'), root = player.controls;
let list = player.config.textTrack
if (list && list instanceof Array && list.length > 1) {
if (list && Array.isArray(list) && list.length > 1) {
util.addClass(player.root, 'xgplayer-is-textTrack');
player.on('canplay', function () {
let tmp = ['<ul>'];
Expand All @@ -14,7 +17,6 @@ let textTrack = function () {
});
let controlText = player.config.lang && player.config.lang === "zh-cn" ? "字幕" : "Caption"
tmp.push(`</ul><p class="name"><em>${controlText}</em></p>`);

let urlInRoot = root.querySelector('.xgplayer-textTrack');
if (urlInRoot) {
urlInRoot.innerHTML = tmp.join('');
Expand All @@ -40,7 +42,7 @@ let textTrack = function () {
trackDoms[0].track.mode = 'hidden'
} else {
trackDoms[0].track.mode = 'showing'

list.some(item => {
if(item.label === li.innerHTML) {
trackDoms[0].src = item.src;
Expand Down
9 changes: 6 additions & 3 deletions packages/xgplayer/src/proxy.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Proxy {
videoConfig.loop = 'loop'
}
let textTrackDom = ''
if (options.textTrack && options.textTrack instanceof Array) {
if (options.textTrack && Array.isArray(options.textTrack) && (navigator.userAgent.indexOf('Chrome') > -1 || navigator.userAgent.indexOf('Firefox') > -1)) {
options.textTrack.some(track => {
if (track.src && track.label && track.default) {
textTrackDom += `<track src="${track.src}" `
Expand All @@ -47,8 +47,11 @@ class Proxy {
styleStr += `${index}: ${options.textTrackStyle[index]};`
}
let wrap = options.id ? `#${options.id}` : (options.el.id ? `#${options.el.id}` : `.${options.el.className}`)
style.sheet.addRule(`${wrap} video::cue`, styleStr)
style.sheet.insertRule(`${wrap} video::cue { ${styleStr} }`, 0)
if (style.sheet.insertRule) {
style.sheet.insertRule(`${wrap} video::cue { ${styleStr} }`, 0)
} else if (style.sheet.addRule) {
style.sheet.addRule(`${wrap} video::cue`, styleStr)
}
}
this.video = util.createDom(videoConfig.mediaType, textTrackDom, videoConfig, '')
this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked',
Expand Down

0 comments on commit 3afda8d

Please sign in to comment.