ykh5p

改善优酷官方html5播放器播放体验

< Feedback on ykh5p

Question/comment

§
Posted: 2017/09/05

firefox 57 nightly 无法全屏

切换全屏会自动变回原状,chrome、firefox 55正常

gooyieAuthor
§
Posted: 2017/09/06

渣酷的bug https://github.com/gooyie/ykh5p/issues/10

已更新……

§
Posted: 2017/09/07

出bug应该是跟youku近期html5的开发有较大进展有关,firefox国内占有率远比不了各chrome内核国产浏览器,问题就多些,甚至长期不解决。

youku现在把html5里的语言和清晰度单独做按钮,语言我没试,记忆清晰度失效了

gooyieAuthor
§
Posted: 2017/09/08

渣酷的h5播放器开发的确有进展,音量记忆、播放记录、缩略图预览、进度条显示本集看点这些功能现在都实现了,弹幕好像也有在开发了(播放器里有一些弹幕相关代码)。不过问题还真是不少,只要鼠标在播放画面上就会一直显示控件,导致进入全屏后无法隐藏控件。连续播放无效。下一集按钮只在全屏有效。跳过片头片尾和播放记录因没有播放完前置视频广告而失效(bug还是有意而为之?)。这些都很影响用户体验的……

firefox占有率低是firefox出现兼容性问题不解决的原因之一,还有一个原因是firefox的开发调试工具比较坑,抖m才会在firefox开发,大多都是在chrome开发后再兼容其它浏览器。


靠!渣酷又把界面改了。 我试了,语言可以记忆。至于清晰度,选择的画质没有作为优先画质并保存至localStorage ,bug? 渣酷为了节省带宽故意不让用户看高画质?(用户懒得每次都手动选画质就忍了?)。

{
    key: "adaptQuality",
    value: function(t) {
        var e = null;
        if (e = "lower-mp4" === this._config.supportType ? this.ups.getLangMap("mp4") : this.ups.getLangMap(),
        e && (e = e[t].qualitys),
        this.qualityList = e,
        e.length < 1)
            return void (this._config.quality = null);
        if (this._config.quality && e.join(",").indexOf(this._config.quality) > -1)
            return this._config.quality;
        var n = "";
        if ("auto" === this._config.preferQuality) {
            var i = this.ups.controllerData.stream_mode;
            n = f.QualityMap[i]
        } else
            n = this._config.preferQuality; // 设置的优先画质
        return e.join(",").indexOf(n) > -1 ? (this._config.defaultQuality = n,
        this._config.quality = n,
        this._config.quality) : (this._config.defaultQuality = "480p", // 设置的优先画质在当前视频没有
        this._config.quality = e[0], // 给最渣画质
        this._config.quality)
    }
}

跳过播放记录被改出bug来了

{
    key: "skipLocalPlayRecord",
    value: function() {
        if (!this.global.cycleData.isFront || this.global.ups.trialData)
            return !1;
        var t = Math.abs(this.global.config.playRecord - this.global.config.duration) < 2 ? 0 : this.global.config.playRecord;
        0 !== t && (this.skipTime(this.global.config.headPosition),  // bug, 应该是 t 或 this.global.config.playRecord
        this.global.cycleData.hadSkipRecord = !0,
        this._emitter.emit(y.MessageConfig["player.showInfo"], {
            type: "information",
            code: "N0007",
            time: t
        }))
    }
}
gooyieAuthor
§
Posted: 2017/09/08

已更新……

Post reply

Sign in to post a reply.