diff --git a/src/components/Play.vue b/src/components/Play.vue index 8e0fe5e..23104fe 100644 --- a/src/components/Play.vue +++ b/src/components/Play.vue @@ -1420,6 +1420,21 @@ export default { }) }, bindEvent () { + let stallIptvTimeout + this.xg.on('waiting', () => { + if (this.isLive && this.setting.autoChangeSourceWhenIptvStalling && this.right.sources.length > 1) { + stallIptvTimeout = setTimeout(() => { + let index = this.right.sources.indexOf(this.video.iptv) + 1 + if (index === this.right.sources.length) index = 0 + clearTimeout(stallIptvTimeout) + this.playChannel(this.right.sources[index]) + }, this.setting.waitingTimeInSec * 1000) + } + }) + this.xg.on('canplay', () => { + if (stallIptvTimeout) clearTimeout(stallIptvTimeout) + }) + this.xg.on('exitFullscreen', () => { if (this.miniMode) this.xg.getCssFullscreen() }) diff --git a/src/components/Setting.vue b/src/components/Setting.vue index 9857d8e..382aac7 100644 --- a/src/components/Setting.vue +++ b/src/components/Setting.vue @@ -75,6 +75,10 @@
检测时自动清理无效源
+
+ + 卡顿时自动换源:秒 +
diff --git a/src/lib/dexie/dexie.js b/src/lib/dexie/dexie.js index 07893f6..435706f 100644 --- a/src/lib/dexie/dexie.js +++ b/src/lib/dexie/dexie.js @@ -53,6 +53,10 @@ db.version(8).stores({ trans.sites.toCollection().modify(site => { if (site.api.includes('7kjx.com')) site.jiexiUrl = 'default' }) + trans.setting.toCollection().modify(setting => { + setting.waitingTimeInSec = 15 + setting.autoChangeSourceWhenIptvStalling = true + }) }) db.on('populate', () => { diff --git a/src/lib/dexie/initData.js b/src/lib/dexie/initData.js index ed2b8d5..9fea21a 100644 --- a/src/lib/dexie/initData.js +++ b/src/lib/dexie/initData.js @@ -9,6 +9,7 @@ const setting = [ excludeRootClasses: true, excludeR18Films: true, forwardTimeInSec: 5, + waitingTimeInSec: 15, starViewMode: 'picture', recommendationViewMode: 'picture', historyViewMode: 'picture', @@ -21,7 +22,8 @@ const setting = [ port: '' }, allowPassWhenIptvCheck: true, - autocleanWhenIptvCheck: false + autocleanWhenIptvCheck: false, + autoChangeSourceWhenIptvStalling: true } ]