Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

解决 Emby 4.8 版本弹幕问题,CORS报错 #53

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

chenghui-lee
Copy link

新版本的 Emby Server (例如 4.8 以上)已经移除了播放页面内的 div[data-type='video-osd'],导致现有版本不能显示弹幕。这个 PR 更改成使用 <div class = "graphicContentContainer">来插入弹幕,并且这个 div 在非播放页面时会隐藏起来。

image

The old div with 'video-osd' value is no longer exist in newer
version of Emby (i.e. 4.8 and above).
@suraxiuxiu
Copy link

请问我复制了你推送的js代码到油猴上,为什么还是没有弹幕按钮 油猴已经显示加载脚本了 是要设置什么吗

@chenghui-lee
Copy link
Author

@suraxiuxiu 我不是使用油猴所以不是很清楚
你可以尝试把第18行的 if statement 去掉,看看能够显示弹幕选单吗

@suraxiuxiu
Copy link

@suraxiuxiu 我不是使用油猴所以不是很清楚 你可以尝试把第18行的 if statement 去掉,看看能够显示弹幕选单吗

能看到了 但是想把脚本内置到index里加载却打不开网站了 会卡emby logo界面,看控制台说找不到appName,用油猴加载就能正常使用

@yotsubar
Copy link

yotsubar commented May 6, 2024

@suraxiuxiu 我不是使用油猴所以不是很清楚 你可以尝试把第18行的 if statement 去掉,看看能够显示弹幕选单吗

能看到了 但是想把脚本内置到index里加载却打不开网站了 会卡emby logo界面,看控制台说找不到appName,用油猴加载就能正常使用

感觉像是js加载的问题,。我加到服务器的index上,在内网不会卡,外网就会报错卡住。它是appHost为undefined了,所以读不到appHost.appName。最后是在new EDE() 前面加一行,先等个2s,就基本没有这个错了。

        await new Promise((resolve) => setTimeout(resolve, 2000));
        if (!window.ede) {
            window.ede = new EDE();
           //……
        }

@suraxiuxiu
Copy link

@suraxiuxiu 我不是使用油猴所以不是很清楚 你可以尝试把第18行的 if statement 去掉,看看能够显示弹幕选单吗

能看到了 但是想把脚本内置到index里加载却打不开网站了 会卡emby logo界面,看控制台说找不到appName,用油猴加载就能正常使用

感觉像是js加载的问题,。我加到服务器的index上,在内网不会卡,外网就会报错卡住。它是appHost为undefined了,所以读不到appHost.appName。最后是在new EDE() 前面加一行,先等个2s,就基本没有这个错了。

        await new Promise((resolve) => setTimeout(resolve, 2000));
        if (!window.ede) {
            window.ede = new EDE();
           //……
        }

试了一下 还是不咋行 但是多次刷新有概率进去 进去一次后就能正常用 如果关了网页再进 又卡在logo进不去了= =

@suraxiuxiu
Copy link

@suraxiuxiu 我不是使用油猴所以不是很清楚 你可以尝试把第18行的 if statement 去掉,看看能够显示弹幕选单吗

能看到了 但是想把脚本内置到index里加载却打不开网站了 会卡emby logo界面,看控制台说找不到appName,用油猴加载就能正常使用

感觉像是js加载的问题,。我加到服务器的index上,在内网不会卡,外网就会报错卡住。它是appHost为undefined了,所以读不到appHost.appName。最后是在new EDE() 前面加一行,先等个2s,就基本没有这个错了。

        await new Promise((resolve) => setTimeout(resolve, 2000));
        if (!window.ede) {
            window.ede = new EDE();
           //……
        }

试了一下 还是不咋行 但是多次刷新有概率进去 进去一次后就能正常用 如果关了网页再进 又卡在logo进不去了= =

新发现 当清理网页缓存后 必定能进去,但是关闭网页再打开就进不去了 得再次清除缓存才能进去 很奇怪

@yotsubar
Copy link

yotsubar commented May 9, 2024

@suraxiuxiu 我不是使用油猴所以不是很清楚 你可以尝试把第18行的 if statement 去掉,看看能够显示弹幕选单吗

能看到了 但是想把脚本内置到index里加载却打不开网站了 会卡emby logo界面,看控制台说找不到appName,用油猴加载就能正常使用

感觉像是js加载的问题,。我加到服务器的index上,在内网不会卡,外网就会报错卡住。它是appHost为undefined了,所以读不到appHost.appName。最后是在new EDE() 前面加一行,先等个2s,就基本没有这个错了。

        await new Promise((resolve) => setTimeout(resolve, 2000));
        if (!window.ede) {
            window.ede = new EDE();
           //……
        }

试了一下 还是不咋行 但是多次刷新有概率进去 进去一次后就能正常用 如果关了网页再进 又卡在logo进不去了= =

新发现 当清理网页缓存后 必定能进去,但是关闭网页再打开就进不去了 得再次清除缓存才能进去 很奇怪

改成下面这个就稳定多了。appName那个错误是在getEmbyItemInfo里边报出来的,我们先等emby完成它自己的初始化。

        while (!window.ConnectionManager) {
            await new Promise((resolve) => setTimeout(resolve, 200));
        }

@suraxiuxiu
Copy link

@suraxiuxiu 我不是使用油猴所以不是很清楚 你可以尝试把第18行的 if statement 去掉,看看能够显示弹幕选单吗

能看到了 但是想把脚本内置到index里加载却打不开网站了 会卡emby logo界面,看控制台说找不到appName,用油猴加载就能正常使用

感觉像是js加载的问题,。我加到服务器的index上,在内网不会卡,外网就会报错卡住。它是appHost为undefined了,所以读不到appHost.appName。最后是在new EDE() 前面加一行,先等个2s,就基本没有这个错了。

        await new Promise((resolve) => setTimeout(resolve, 2000));
        if (!window.ede) {
            window.ede = new EDE();
           //……
        }

试了一下 还是不咋行 但是多次刷新有概率进去 进去一次后就能正常用 如果关了网页再进 又卡在logo进不去了= =

新发现 当清理网页缓存后 必定能进去,但是关闭网页再打开就进不去了 得再次清除缓存才能进去 很奇怪

改成下面这个就稳定多了。appName那个错误是在getEmbyItemInfo里边报出来的,我们先等emby完成它自己的初始化。

        while (!window.ConnectionManager) {
            await new Promise((resolve) => setTimeout(resolve, 200));
        }

感谢 可以正常加载了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants