Skip to content

Commit

Permalink
fix(xgplayer/[player.js && proxy.js, control/mobile.js && volume.js])…
Browse files Browse the repository at this point in the history
…: fix muted autoplay
  • Loading branch information
zhangxin92 committed Aug 8, 2018
1 parent 2b97761 commit a30892a
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 4 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.

2 changes: 1 addition & 1 deletion packages/xgplayer/src/control/mobile.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ let mobile = function () {
let player = this

let util = Player.util; let root = player.root
player.config.autoplay = false
// player.config.autoplay = false
let whitelist = player.config.whitelist
let pass = whitelistPass(whitelist)
player.mobilePass = pass
Expand Down
17 changes: 16 additions & 1 deletion packages/xgplayer/src/control/volume.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,12 @@ let volume = function () {
})

let _changeTimer = null
let firstVolChanged = 0;
player.on('volumechange', function () {
if (firstVolChanged === 1) {
player.video.muted = false
firstVolChanged = 2
}
if (_changeTimer) {
clearTimeout(_changeTimer)
}
Expand All @@ -145,8 +150,18 @@ let volume = function () {
}, 50)
})

player.once('volumechange', function () {
if (player.config.autoplay) {
firstVolChanged = 1
}
})

player.once('canplay', function () {
player.volume = player.config.volume
if (player.config.autoplay) {
player.volume = 0
} else {
player.volume = player.config.volume
}
})

player.once('destroy', () => {
Expand Down
9 changes: 9 additions & 0 deletions packages/xgplayer/src/player.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,15 @@ class Player extends Proxy {
}))
})
}
if (player.config.autoplay) {
this.video.addEventListener('canplay', () => {
player.video.play().then(() => {
// 支持自动播放
}).catch(err => {
// 不支持自动播放
});
});
}
root.insertBefore(this.video, root.firstChild)
player.userTimer = setTimeout(function () {
player.emit('blur')
Expand Down
4 changes: 4 additions & 0 deletions packages/xgplayer/src/proxy.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ class Proxy {
}
}
this.video = util.createDom(videoConfig.mediaType, textTrackDom, videoConfig, '')
if (options.autoplay) {
this.video.autoplay = true
this.video.muted = true
}
this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked',
'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'loadeddata'
].map((item) => {
Expand Down

0 comments on commit a30892a

Please sign in to comment.