私の環境下での問題かもしれませんが、GameMakerで作成したゲームが
実行した際のサウンドデバイスを維持するようになっているようです。
おそらくエクスポートしたGameMakerのバージョンによって少々挙動が違うのですが、
・GoodbyeWorld(自身が開発中のゲーム)
・ElecHead
①ゲーム起動中にヘッドセットを接続しても、スピーカー出力のまま。
②ヘッドセットを接続した状態でゲームを起動し、ヘッドセットを切断すると無音状態に。
・Undertale
①ゲーム起動中にヘッドセットを接続すると、ヘッドセットに切り替わる。
②ヘッドセットを接続した状態でゲームを起動し、ヘッドセットを切断すると無音状態に。
というような状態でした。
補足として、使用しているヘッドセットはロジクールG435で
USB受信機を介する無線のヘッドセットです。
音が鳴らなくなるだけであれば、さほど問題がないのですが、
先述の②の無音状態になった際に、以下の関数の挙動に影響が出てしまうようです。
※以下②の状態を”無音状態”と記します。
・audio_sound_playing
無音状態では一度再生したサウンドは常に再生中扱いになるようです。
そのため再生完了を待機させていると進行不能になります。
・audio_sound_get_track_position
ヘッドセットが切断されたタイミング(無音状態になったタイミング)で
値が変化しなくなります。(内部的にポーズ状態にあるようです。)
※同様の処理をしている方がいたらお気を付けください…
上記不具合に関して何か知っていることがあれば教えて頂きたいです。
よろしくお願いいたします。
2023.11バージョンからこの問題は修正されたみたいです。