AudioSettings クラスは、サウンドシステムに関連したさまざまなグローバル情報を含んでいて、オーディオシステムをランタイムでリセットできるようにする API です。これにより、スピーカーモード、サンプルレート(プラットフォームが対応している場合)、DSP バッファーサイズ、リアル/バーチャルのボイスカウントなどの設定の変更が可能になります。
これらの設定の多くは、Project Settings の Audio セクションでも行えます。変更された設定はエディターに適用されると同時にゲームの初期状態も定義します。これに対し、AudioSettings API を使って行われた変更はゲームのランタイムにのみ適用され、エディター上でゲームを終了すると Project Settings で設定された状態にリセットされます。
ゲームのメニューでサウンド・オプションを提供してユーザーがサウンド設定を変更できるようにすることも可能ですが、外部デバイスの変更に連動して変更させることもできます。つまり、外部のオーディオ入出力デバイスや、HDMI モニター(オーディオデバイスとして機能させることが可能)を接続することでこれを行えます。 AudioConfiguration AudioSettings.GetConfiguration() / bool AudioSettings.Reset(AudioConfiguration config) API は、現在のサウンドシステム設定のグローバル設定を読み込んで変更を加えることができます。これは、プロパティーの修正に伴いオーディオシステム全体が再初期化されてしまうという副作用のあった AudioSettings.SetDSPBufferSize(…) 関数、AudioSettings.outputSampleRate、AudioSettings.speakerMode に実質的に取って変わるものです。
この API は AudioSettings.OnAudioConfigurationChanged(bool device)を定義し、スクリプトにオーディオ設定の変更を通知するコールバックをセットアップします。これは実際のデバイスの変更や、スクリプトにより起動した設定によって、行うことができます。
オーディオシステムのグローバル設定がランタイムで修正される度に、すべてのオーディオ オブジェクトの再読み込みが必要です。これは、ディスクベースの AudioClip アセットやオーディオミキサーでは問題ありませんが、スクリプトによって生成や修正された AudioClip は失われるので再作成される必要があります。同様にプレイ状態も失われるので、これらは AudioSettings.OnAudioConfigurationChanged(…) コールバックによって再作成される必要があります。
詳細や参考例は、スクリプト API リファレンスを参照してください。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.