andanteyk / ElectronicObserver

艦これ補助ツール「七四式電子観測儀」
MIT License
347 stars 209 forks source link

音声出力先に関する不具合 #282

Open kuromak opened 3 years ago

kuromak commented 3 years ago

CefSharp.BrowserSubProcessとElectricObserverのそれぞれを同じ音声出力先に変更しない場合、 ミュート、音量調整の機能が働かなくなる。

おそらく、EOBrowserがWindowsのアプリごとの音声出力先設定に出てこないため、EOBrowser単位で選択できないため、その中で呼び出されているCefSharp.BrowserSubProcessだけが出力先を変更されてしまい、EOBrowser側から操作できなくてエラーになっているのではと思っています。

kuromak commented 3 years ago

ソースを拝見させていただきましたが、おそらく、BrowserLib/FormMain.csにて、

uint id = (uint)System.Diagnostics.Process.GetCurrentProcess().Id;
Utility.Configuration.Config.Control.LastVolume = BrowserLib.VolumeManager.GetApplicationVolume(id);
Utility.Configuration.Config.Control.LastIsMute = BrowserLib.VolumeManager.GetApplicationMute(id);

これに渡しているprocessIDがCefSharp.BrowserSubProcessのプロセスIDになればうまくいくのではないかなと思っています。

andanteyk commented 3 years ago

ミュートの切り替えができなくなるのはこちらでも確認しました。 ただ個人的に使用しない機能なので低優先度になりますがご了承ください。

ソースを拝見させていただきましたが

その設定は本体側(ElectronicObserver)の音量(通知音、BGMプレイヤーなど)を変更するためのもので、ブラウザ側(CefSharp.BrowserSubprocess)とは関係ないのでは?と思うのですが、いかがでしょうか。

また、基本的に EOBrowser からは音は鳴っていないはずです。(あったとしてエラーダイアログぐらい?) そのため音量ミキサに出てこないのだと思います。

不確かな記憶のもとに書いているので、勘違いしていたら指摘してください。

kuromak commented 3 years ago

ミュートの切り替えができなくなる件の確認ありがとうございました。

また、基本的に EOBrowser からは音は鳴っていないはずです。(あったとしてエラーダイアログぐらい?) そのため音量ミキサに出てこないのだと思います。

なるほどたしかにいわれてみれば現状のWindowsのシステムだと音が鳴っていないものはミキサにでてこないですね。 低優先度になるとのこと、承知いたしました。

欲を言えばEOBrowserとブラウザ側のサブプロセスの音声出力先をセットで設定できればいちばんいいのでしょうね。 もしくはシステム設定を使用を選んだ場合にきちんとコントロールできることですかね。

年末進行で今は時間がないですが、時間が空いたときにもうちょっとしっかりソースを追ってなんとかできそうならプルリクエスト送らせていただくかもしれません。