6 Punkte von GN⁺ 2025-02-17 | 1 Kommentare | Auf WhatsApp teilen
  • Problem entdeckt: Auf einem neuen Laptop wurde ein Problem festgestellt, bei dem aus den Lautsprechern gelegentlich weißes Rauschen zu hören war. Es war nur in einem ruhigen Raum wahrnehmbar.

  • Ursachenanalyse: Bei der Überprüfung des Audio-Sink-Status von PulseAudio zeigte sich, dass im Zustand SUSPENDED kein Ton auftrat, im Zustand IDLE oder RUNNING jedoch weißes Rauschen entstand.

  • Das Problem mit Firefox: Firefox erschien als das Programm, das den Audio-Sink verwendete, obwohl unter den geöffneten Tabs keiner Ton abspielte, und trotzdem trat weißes Rauschen auf.

  • Ursache: Der Benachrichtigungston von outlook.office.com stellte sich als Auslöser des Problems heraus. Jedes Mal, wenn eine E-Mail eintraf, begann das weiße Rauschen und hörte erst auf, wenn der Tab neu geladen oder Firefox neu gestartet wurde.

  • Akkuverbrauch: Wenn das weiße Rauschen auftrat, stiegen auch CPU- und Akkuverbrauch.

  • Versuch einer Lösung: Es wurde versucht, das Problem durch Deaktivieren der E-Mail-Benachrichtigungen zu beheben, aber auch auf anderen Websites trat ein ähnliches Problem auf.

  • HTML-/JavaScript-Audioverarbeitung: Es gibt den ``-Tag und die WebAudio API als Methoden zur Audiowiedergabe. Es wurde festgestellt, dass das Problem beim Erstellen eines AudioContext entsteht.

  • Unterschied zwischen Firefox und Chrome: Chrome beendet die Verschwendung von Akku/CPU nach einer gewissen Zeit automatisch, Firefox jedoch nicht.

  • Lösung: Es wurde eine Erweiterung entwickelt, die AudioContext automatisch anhält und bei Bedarf wieder startet. Sie ist nicht perfekt, aber ausreichend wirksam.

1 Kommentare

 
GN⁺ 2025-02-17
Hacker-News-Kommentare
  • Das Problem ist geplant und wichtig. Es soll bald behoben werden. Es tut uns leid, dass es wegen Prioritätsfragen noch nicht gelöst wurde. Für mich persönlich hat es eine hohe Priorität

    • Komplexer als einen Audio Context nach einer bestimmten Zeit anzuhalten, aber lösbar. Andere haben es gemacht, also ist es möglich. Ich bin bereit zu Kompromissen
    • Quelle: Firefox-Implementierer und Standard-Editor der Web Audio API
  • Eine Website, die einen Audio Context öffnet und nichts abspielt, führt vermutlich Bot-Erkennung durch

    • Andere Browser-Engines und Betriebssysteme implementieren Audiobearbeitung unterschiedlich. Wenn man einen völlig unhörbaren Ton abspielt und wieder aufnimmt, entsteht eine Signatur
    • Mit dieser Signatur kann geprüft werden, ob der Browser beim User-Agent lügt, im Headless-Modus läuft oder kein echter Nutzer ist
  • Ich frage mich, ob dasselbe Problem auch auf Android-Geräten auftritt

  • Dieses weiße Rauschen hat mich lange wahnsinnig gemacht, aber ich konnte die Ursache nicht finden

    • Im Tab wird kein „Wiedergabe“-Symbol angezeigt, und selbst wenn ich den Tab stummschalte, hört das Rauschen nicht auf
    • Selbst wenn ich Firefox im Windows-Lautstärkemixer stummschalte, hört das Rauschen nicht auf
    • Edit: Für Desktop-Nutzer startet und stoppt das weiße Rauschen ständig, was extrem nervig ist
  • Wenn die Ausgabe in den Leerlauf geht, verliert das digitale SPDIF-Signal die Synchronisation. Wenn die Wiedergabe startet, dauert es eine Weile, bis wieder synchronisiert ist, und die ersten Sekunden des Audios gehen verloren. Ich habe ein Programm geschrieben, das die Ausgabe offen hält, ohne Daten auf die Leitung zu kippen, damit die Ausgabe nicht in den Leerlauf geht

    • Auf Laptops ist Energiesparen wichtiger
  • Das könnte erklären, warum Android Firefox mein Handy gelegentlich an einem Tag 10 GB Daten verbrauchen ließ. Nachrichtenseiten spielten Audio ab und luden Werbung ständig neu, und der Tab wechselte wegen des Audios nicht in den Energiesparmodus. Wegen der wiederkehrenden Datenkosten musste ich zu Chrome wechseln

  • In Chromium steht der Code zur Behandlung dieser Unterbrechung hier

    • Im Wesentlichen wird nach etwa 30 Sekunden Stille auf einen Null-Sync umgeschaltet, der vom Audio-Gerät des OS unterstützt wird
    • Hinweis: Da ein anderer Takt als der des Audio-Geräts verwendet wird, kann es zu Verzerrungen bei bestimmten Tönen kommen, wenn der Context schließlich genutzt wird. Die Lösung ist, dass die Website die im Artikel erwähnte suspend/resume-API verwendet
  • Ich habe ein ähnliches Problem auch unter macOS festgestellt (audiobedingter Stromverbrauch, kein weißes Rauschen)

    • Auf meinem aktuellen Mac nutzt coreaudiod 20 % der CPU, obwohl nichts abgespielt wird. Ich denke darüber nach, bis zur Behebung auf einen anderen Browser zu wechseln, möchte Firefox aber nicht aufgeben
    • Update: Scheint ein verwandter, aber anderer Bug zu sein
  • Dieses Problem behebt die Startseite von https://www.dr.dk/

  • Ich weiß nicht genau, wie audioContext implementiert ist, aber es ist sehr clever und dynamisch. Einen Benachrichtigungston abzuspielen ist wie SVG mit D3 zu zeichnen. Ich frage mich, ob es in einer effizienteren API einen serviceWorker-Hook gibt, mit dem sich einfache wiederkehrende Aufgaben wie ein Benachrichtigungs-Handler registrieren lassen