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

背景音樂下載 #118

Open
psc2350 opened this issue Oct 28, 2018 · 1 comment
Open

背景音樂下載 #118

psc2350 opened this issue Oct 28, 2018 · 1 comment
Labels

Comments

@psc2350
Copy link

psc2350 commented Oct 28, 2018

我有開啟"Play silent music during the process to avoid downloading freeze"
但是好像音樂並沒有播放,且沒法在非當前Tab下載

@ccloli
Copy link
Owner

ccloli commented Nov 18, 2018

image

在 Chrome 最新版本下,將 Tab 切換至背景後,Chrome 確實指示該 Tab 正在播放音樂,所以播放音樂是沒有問題的。

但是嘗試在 Console 上每隔 100ms 輸出一次時間差,結果顯示有時候時間差是 100ms,有時候則會停留比較長的時間,可以理解為第一個 100ms 開始計時至該較長時間差結束的時間總和大約是 1000-1200ms。所以該功能雖然還能部分正常運行(至少 Tab 在背景時還是會更新下載進度的,最後也會給出 zip 檔),但是還是不可避免地被 Chrome 優化掉了。

根據之前的討論(#65 & #72),當時能繞過 Chrome 效能優化的方式目前只找到兩種,一種是播放媒體文件欺騙 Chrome 不要對標籤頁進行效能優化,另一種是建立 Web Worker 並使用 Web Worker 的 setTimeout(因為 Web Worker 的 setTimeout 似乎不會被 Chronem 優化)。然而前者現在看起來已經部分失效,而後者已經在之前的測試中失敗了,這可能是外部重定義無法解決 Tampermonkey 內部調用。

總之,這個 bug 只在 Chrome + Tampermonkey 下會出現,因為 Chrome 對 setTimeout 等進行了效能優化,而 Tampermonkey 在內部實現上可能大量使用了類似的方法(至少該問題在其他瀏覽器上,以及 Chrome + 其他用戶腳本擴展均沒有問題)。若頻繁遇到該問題而導致無法下載的話,建議還是藉助其他下載工具,或者在其他瀏覽器、擴展程序上試試,對於這個問題只能說已經盡力了。

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

No branches or pull requests

2 participants