void Start() { sequence = gameObject.AddComponent <AudioSequence>(); sequence.Play(introClip, loopClip); AudioSequenceData data = sequence.GetData(loopClip); data.source.loop = true; }
public void LoadAudio(string projectFolder, string clipName) { // Already loaded, bail out. if (audioSequences.ContainsKey(clipName)) { return; } // Create entry. audioSequences[clipName] = new List <AudioSequence>(); //ClearAudio(); // Load sound sequences from xml data. List <XML_Types.XML_SoundSequence> soundSequences = XML_StageLoader.loadSoundSequences(projectFolder, clipName); foreach (XML_Types.XML_SoundSequence soundSequence in soundSequences) { //Message.Log( "sound sequence: " + soundSequence._name + " startFrame: " + soundSequence._startFrame ); // Retrieve audio clip from asset database. If it's not already in asset database, copy clip // from projectFolder to asset database. string soundName = Path.GetFileNameWithoutExtension(soundSequence._name); if (!string.IsNullOrEmpty(audioFolder)) { soundName = audioFolder + "/" + soundName; } AudioClip clip = Resources.Load <AudioClip>(soundName); if (clip == null) { // Download audio file into resources. This is only useful to test Harmony Export in Unity. // For final game, sound files should be copied in Resources. string soundFilename = projectFolder + "/audio/" + soundSequence._name; if (File.Exists(soundFilename)) { Message.Log("Copying from '" + soundFilename + "'"); WWW www = new WWW("file://" + System.Uri.EscapeUriString(soundFilename)); scheduledDownloads.Add(www); // Add download to list of scheduled downloads. clip = www.GetAudioClip(true /*threeD*/, false /*stream*/); } } // Create new audio sequence with audio clip. // Clip starts with a delay specified by startFrame when animation is initiated. if (clip != null) { AudioSequence audioSequence = new AudioSequence(); audioSequence.audioClip = clip; audioSequence.startFrame = soundSequence._startFrame; audioSequences[clipName].Add(audioSequence); } } }
public void Boot() { if (GetComponent <Game>().playMusic) { sequence = gameObject.AddComponent <AudioSequence>(); sequence.Play(introClip, loopClip); AudioSequenceData data = sequence.GetData(loopClip); data.source.loop = true; } }
public static void Main(string[] args) { AudioDevice device = new AudioDevice(); AudioSource channel0 = new AudioSource(); AudioClip guitar = new AudioClip("Assets/korg_m3r_rock.wav"); AudioSequence ozzy = new AudioSequence("Assets/ozzy_osbourne_crazy_train.mid"); Window window = new Window(1024, 576, "Aiv.Audio.Example.Midi"); while (window.opened) { if (window.GetKey(KeyCode.Space)) { channel0.Play(guitar); } window.Update(); } }
public void Init() { int sequenceLength = 0; if (sequenceType == AudioSequenceType.None) { sequenceSources = new AudioSource[1] { GetComponent <AudioSource>() }; } else { sequenceSources = GetComponentsInChildren <AudioSource>(); sequenceLength = sequenceSources.Length; } sequenceNameTable = new Dictionary <string, int>(); for (int i = 0; i < sequenceSources.Length; i++) { sequenceNameTable[sequenceSources[i].gameObject.name] = i; } sequence = new AudioSequence(sequenceType, sequenceLength); }
public void LoadAudio( string projectFolder, string clipName ) { // Already loaded, bail out. if ( audioSequences.ContainsKey( clipName ) ) return; // Create entry. audioSequences[clipName] = new List< AudioSequence >(); //ClearAudio(); // Load sound sequences from xml data. List<XML_Types.XML_SoundSequence> soundSequences = XML_StageLoader.loadSoundSequences(projectFolder, clipName); foreach ( XML_Types.XML_SoundSequence soundSequence in soundSequences ) { //Message.Log( "sound sequence: " + soundSequence._name + " startFrame: " + soundSequence._startFrame ); // Retrieve audio clip from asset database. If it's not already in asset database, copy clip // from projectFolder to asset database. string soundName = Path.GetFileNameWithoutExtension(soundSequence._name); if ( !string.IsNullOrEmpty(audioFolder ) ) { soundName = audioFolder + "/" + soundName; } AudioClip clip = Resources.Load<AudioClip>(soundName); if ( clip == null ) { // Download audio file into resources. This is only useful to test Harmony Export in Unity. // For final game, sound files should be copied in Resources. string soundFilename = projectFolder + "/audio/" + soundSequence._name; if ( File.Exists(soundFilename) ) { Message.Log( "Copying from '" + soundFilename + "'" ); WWW www = new WWW("file://" + System.Uri.EscapeUriString(soundFilename) ); scheduledDownloads.Add(www); // Add download to list of scheduled downloads. clip = www.GetAudioClip(true /*threeD*/, false /*stream*/); } } // Create new audio sequence with audio clip. // Clip starts with a delay specified by startFrame when animation is initiated. if ( clip != null ) { AudioSequence audioSequence = new AudioSequence(); audioSequence.audioClip = clip; audioSequence.startFrame = soundSequence._startFrame; audioSequences[clipName].Add(audioSequence); } } }
public int ScheduleAudioClips(string clipName, float delay, float startFrame, float frameRate) { //Message.Log( "ScheduleAudioClips delay: " + delay + " startFrame: " + startFrame + " frameRate: " + frameRate ); if (!audioSequences.ContainsKey(clipName)) { return(-1); } AudioEvent audioEvent = new AudioEvent(); List <AudioSequence> clipAudioSequences = audioSequences[clipName]; for (int i = 0; i < clipAudioSequences.Count; ++i) { AudioSequence audioSequence = clipAudioSequences[i]; if (audioSequence.startFrame >= startFrame) { AudioSource audioSource = null; if (audioSourcePool.Count > 0) { audioSource = audioSourcePool[0]; audioSourcePool.RemoveAt(0); } else { string audioName = "audioObject_" + string.Format("{0:0,0}", ++audioIndex); // Parent audio game object to current game object. GameObject audioObject = new GameObject(audioName); audioObject.transform.parent = gameObject.transform; // Reset transform in audioObject audioObject.transform.localPosition = Vector3.zero; audioObject.transform.localScale = Vector3.one; audioObject.transform.localRotation = Quaternion.identity; // Create default AudioSource object. audioSource = audioObject.AddComponent <AudioSource>(); audioSource.playOnAwake = false; // handled by us. audioSource.loop = false; // handled by us. AudioSource templateAudioSource = gameObject.GetComponent <AudioSource>(); if (templateAudioSource != null) { // Could not find any better way to copy parameters from template AudioSource // to target AudioSource. Cannot only Instantiate a Component without its // GameObject, and Type.GetFields returns empty collection for Unity Components. audioSource.mute = templateAudioSource.mute; audioSource.bypassEffects = templateAudioSource.bypassEffects; audioSource.priority = templateAudioSource.priority; audioSource.volume = templateAudioSource.volume; audioSource.pitch = templateAudioSource.pitch; // 3D sound settings. audioSource.dopplerLevel = templateAudioSource.dopplerLevel; audioSource.minDistance = templateAudioSource.minDistance; audioSource.maxDistance = templateAudioSource.maxDistance; #if UNITY_4_3 || UNITY_4_5 || UNITY_4_6 audioSource.panLevel = templateAudioSource.panLevel; #else // UNITY_5_0 audioSource.spatialBlend = templateAudioSource.spatialBlend; #endif audioSource.spread = templateAudioSource.spread; audioSource.rolloffMode = templateAudioSource.rolloffMode; // 2D sound settings. #if UNITY_4_3 || UNITY_4_5 || UNITY_4_6 audioSource.pan = templateAudioSource.pan; #else // UNITY_5_0 audioSource.panStereo = templateAudioSource.panStereo; #endif } } audioSource.clip = clipAudioSequences[i].audioClip; float clipDelay = ((audioSequence.startFrame - startFrame) / frameRate) + delay; audioSource.PlayScheduled(AudioSettings.dspTime + clipDelay); audioEvent.audioSources.Add(audioSource); } } if (audioEvent.audioSources.Count > 0) { int id = ++audioEventId; audioEvents.Add(id, audioEvent); return(id); } return(-1); }