diff --git a/index.html b/index.html index 1f71fc2..dd9a8a0 100644 --- a/index.html +++ b/index.html @@ -63,7 +63,6 @@
  • 某科学的 PGP 算号指南
  • 密钥使用 OpenPGP.js 在浏览器中生成,不会发送到其他地方。如果仍然担心这一点,可以检查源代码、查看浏览器开发者工具的“网络”部分、或在页面加载完成后断网使用。

    -

    注意:浏览器可能会限制在后台标签页中运行的内容,因此算号时请避免切换到其它标签页或将浏览器窗口最小化,否则会严重影响算号速度。作为替代,你可以将这个标签页拖出成为一个单独的窗口,使用各类工具将窗口置顶,然后拖到屏幕边缘。


    diff --git a/src/main.ts b/src/main.ts index 1d19b93..54de305 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,6 +6,7 @@ import { } from 'openpgp/lightweight'; import { createVanityKey } from './vanity-key.ts'; import tadaData from './tada.ogg?inline'; +import silenceData from './near-silence.ogg?inline'; import { EllipticCurveName, GenerateKeyOptions, @@ -17,6 +18,13 @@ import 'terminal.css'; const tada = new Audio(tadaData); +// 通过播放音频阻止浏览器降低setTimeout的频率 +// 完全静音的音频是没有效果的…… +// ffmpeg -f lavfi -i "sine=frequency=1:duration=1" -c:a libopus -ar 8k -b:a 1k -movflags +faststart -fflags +bitexact -map_metadata -1 -dn near-silence.ogg +const silence = new Audio(silenceData); +silence.volume = .01; +silence.loop = true; + const app: { keyType: EllipticCurveName | '2048' | '3072' | '4096', userIDInput: UserID, @@ -131,6 +139,7 @@ const app: { this.hashCount = 0; this.runningTime = 0; this.running = true; + silence.play(); try { const options: GenerateKeyOptions = { userIDs: this.userID, @@ -189,6 +198,7 @@ const app: { alert(err); } finally { this.running = false; + silence.pause(); } }, diff --git a/src/near-silence.ogg b/src/near-silence.ogg new file mode 100644 index 0000000..82a5874 Binary files /dev/null and b/src/near-silence.ogg differ