Legacy Documentation: Version 5.1
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

AudioSettings.Reset

Switch to Manual
public static function Reset(config: AudioConfiguration): bool;

Parameters

config The new configuration to be used.

Returns

bool True if all settings could be successfully applied.

Description

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();
	}
}