2019年3月16日土曜日

Discordがやたら音飛びする場合

何年ぶりの更新かわかりませんが、日本語の情報があまりなかったのでまとめておきます。

読むのが面倒な方へ

Discordを最小化すると、プロセス優先度が下がって音が飛ぶようになる場合があるようです。なので、現象が発生してしまった人はDiscordを最小化しないで使ってね。
ザッツオール。

現象

最近、FF14のレイドPTで使用しているボイスチャットツール「Discord」で、ある時から私だけやたら音が飛ぶという現象が発生しました。
他の人がしゃべっている声はプツプツ途切れ何を言っているかわからないレベル、また私がしゃべっている内容を他の人が聞いた時は「ビヨンビヨンしている」という状態だったようです。

隣でほぼ同じ環境でプレイしている嫁は現象が発生していないので、プロバイダやルータは関係なし。マシンのNICが影響している可能性もありましたが、いずれにせよ以前は普通に使えていたのでハードはあまり関係ないんじゃないかと。

ググると同様の現象が発生している人はいるものの、マイクの入力感度やデバイスの話が多く、私の現象の原因になるものは見つかりませんでした。

音飛びの原因

いろいろ調べた結果、Discordの「プロセス優先度」がいつの間にか変わっていることが判明しました。Discordは基本的に常時プロセスが4つ起動しているのですが、そのうちの1つがプロセス優先度「低」になっていました。こいつが犯人だろ…。
とりあえずCTRL+SHIFT+ESCでタスクマネージャを開き、詳細タブからプロセス優先度「低」になってるDiscord.exeを探し、「標準」に戻すことで一旦解決。とりあえずしばらくは音が飛ばなくなりました。

でも…

安心したのもつかの間。しばらく使っていると、また同様の現象が発生。なにこれ。
再度タスクマネージャを開いて確認すると、やっぱりDiscordのプロセスの1つが優先度「低」になってる。なにこれ。天狗の仕業か?

プロセス優先度変化の原因

「discord プロセス優先度 勝手に変わる」とかでググっても全然わかんないんで、「discord process priority」でググったら、すぐにRedditの記事が見つかりました。
どうも現象が発生するのは「Discordのウインドウが最小化されてる場合」みたいです。解決策は単純で、Discordのウインドウを最小化しなければOK。

より詳細な情報

詳しく調べてみると、最小化時にプロセス優先度が下がるってのはどうやらchromiumの仕様だそうです。DiscordがElectronで作られており、ElectronがChromiumで作られているので、こうなるみたいですね。
で、この挙動を無効化するコマンドラインスイッチもあるんですって。Discord.exeに --disable-renderer-backgroundingスイッチを渡して起動すると、最小化時にプロセス優先度が勝手に変わる現象が発生しなくなることは確認できました。
しかし、これにも1つ問題が。Discord上でWindows起動時にDiscordが起動する設定にした場合、どうもDiscord.exeそのものがWindows起動時に立ち上がるようです。これじゃスイッチ渡せない。詰んだ。
Discord側の設定を切って、Windowsのスタートアップフォルダに自分でDiscord.exeに対してパラメータを指定したショートカットを作れば多分問題解決なんですが、ちょっと気持ち悪すぎるので、Discord側で何か変わるのを待とうかと思います。