config | The new configuration to be used. |
bool True if all settings could be successfully applied.
Performs a change of the device configuration. In response to this the AudioSettings.OnAudioConfigurationChanged delegate is invoked with the argument deviceWasChanged=false. It cannot be guaranteed that the exact settings specified can be used, but the an attempt is made to use the closest match supported by the system.
#pragma strict public class TestAudioConfiguration extends MonoBehaviour { function Start() { AudioSettings.OnAudioConfigurationChanged += OnAudioConfigurationChanged; } function OnAudioConfigurationChanged(deviceWasChanged: boolean) { Debug.Log(deviceWasChanged ? "Device was changed" : "Reset was called"); if (deviceWasChanged) { var config: var = AudioSettings.GetConfiguration(); config.dspBufferSize = 64; AudioSettings.Reset(config); } GetComponent.<AudioSource>().Play(); } static var validSpeakerModes: int[] = [intAudioSpeakerMode.Mono, intAudioSpeakerMode.Stereo, intAudioSpeakerMode.Quad, intAudioSpeakerMode.Surround, intAudioSpeakerMode.Mode5point1, intAudioSpeakerMode.Mode7point1]; static var validDSPBufferSizes: int[] = [32, 64, 128, 256, 340, 480, 512, 1024, 2048, 4096, 8192]; static var validSampleRates: int[] = [11025, 22050, 44100, 48000, 88200, 96000]; static var validNumRealVoices: int[] = [1, 2, 4, 8, 16, 32, 50, 64, 100, 128, 256, 512]; static var validNumVirtualVoices: int[] = [1, 2, 4, 8, 16, 32, 50, 64, 100, 128, 256, 512]; function GUIRow(name: String, valid: int[], value: int, modified: boolean) { GUILayout.BeginHorizontal(); GUILayout.Button(name + "=" + value); for (var i: int = 0; i < valid.Length; i++) { var s: String = valid[i].ToString(); if (valid[i] == value) s = "[" + s + "]"; if (GUILayout.Button(s)) { value = valid[i]; modified = true; } } GUILayout.EndHorizontal(); return value; } function OnGUI() { var source: var = GetComponent.<AudioSource>(); var modified: boolean = false; var config: AudioConfiguration = AudioSettings.GetConfiguration(); config.speakerMode = AudioSpeakerModeGUIRow("speakerMode", validSpeakerModes, intconfig.speakerMode, modified); config.dspBufferSize = GUIRow("dspBufferSize", validDSPBufferSizes, config.dspBufferSize, modified); config.sampleRate = GUIRow("sampleRate", validSampleRates, config.sampleRate, modified); config.numRealVoices = GUIRow("RealVoices", validNumRealVoices, config.numRealVoices, modified); config.numVirtualVoices = GUIRow("numVirtualVoices", validNumVirtualVoices, config.numVirtualVoices, modified); if (modified) AudioSettings.Reset(config); if (GUILayout.Button("Start")) source.Play(); if (GUILayout.Button("Stop")) source.Stop(); } }