Skip to content

Commit a30892a

Browse files
committed
fix(xgplayer/[player.js && proxy.js, control/mobile.js && volume.js]): fix muted autoplay
1 parent 2b97761 commit a30892a

File tree

6 files changed

+32
-4
lines changed

6 files changed

+32
-4
lines changed

packages/xgplayer/browser/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/xgplayer/dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/xgplayer/src/control/mobile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ let mobile = function () {
4040
let player = this
4141

4242
let util = Player.util; let root = player.root
43-
player.config.autoplay = false
43+
// player.config.autoplay = false
4444
let whitelist = player.config.whitelist
4545
let pass = whitelistPass(whitelist)
4646
player.mobilePass = pass

packages/xgplayer/src/control/volume.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,12 @@ let volume = function () {
131131
})
132132

133133
let _changeTimer = null
134+
let firstVolChanged = 0;
134135
player.on('volumechange', function () {
136+
if (firstVolChanged === 1) {
137+
player.video.muted = false
138+
firstVolChanged = 2
139+
}
135140
if (_changeTimer) {
136141
clearTimeout(_changeTimer)
137142
}
@@ -145,8 +150,18 @@ let volume = function () {
145150
}, 50)
146151
})
147152

153+
player.once('volumechange', function () {
154+
if (player.config.autoplay) {
155+
firstVolChanged = 1
156+
}
157+
})
158+
148159
player.once('canplay', function () {
149-
player.volume = player.config.volume
160+
if (player.config.autoplay) {
161+
player.volume = 0
162+
} else {
163+
player.volume = player.config.volume
164+
}
150165
})
151166

152167
player.once('destroy', () => {

packages/xgplayer/src/player.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,15 @@ class Player extends Proxy {
9393
}))
9494
})
9595
}
96+
if (player.config.autoplay) {
97+
this.video.addEventListener('canplay', () => {
98+
player.video.play().then(() => {
99+
// 支持自动播放
100+
}).catch(err => {
101+
// 不支持自动播放
102+
});
103+
});
104+
}
96105
root.insertBefore(this.video, root.firstChild)
97106
player.userTimer = setTimeout(function () {
98107
player.emit('blur')

packages/xgplayer/src/proxy.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ class Proxy {
5454
}
5555
}
5656
this.video = util.createDom(videoConfig.mediaType, textTrackDom, videoConfig, '')
57+
if (options.autoplay) {
58+
this.video.autoplay = true
59+
this.video.muted = true
60+
}
5761
this.ev = ['play', 'playing', 'pause', 'ended', 'error', 'seeking', 'seeked',
5862
'timeupdate', 'waiting', 'canplay', 'canplaythrough', 'durationchange', 'volumechange', 'loadeddata'
5963
].map((item) => {

0 commit comments

Comments
 (0)