Ejemplo n.º 1
0
    void OnAudioEnded(AudioGroup group, int sampleTime)
    {
        if (curMusic == group)
          {
         Debug.Log("Audio ended!");
         if (AutoLoop)
         {
            transMusic = curMusic;
            transMusicTime = 0;
            Debug.Log("Looping Music!");
         }

         if (sampleTime != curMusicTime)
         {
            PerformChoreographyForTimeSlice(curMusic, curMusicTime + 1, sampleTime);
         }

         // Save some time if we're simply replaying the previous music.
         if (curMusic != transMusic)
         {
            group.UnregisterKoreography();	// Clean out Koreography linkages.
            group.ClearLayerData();			// Free up some space.
         }

         // Make sure we've loaded the new Koreography.
         if (transMusic != null && !transMusic.IsKoreographyRegistered())
         {
            transMusic.RegisterKoreography();
         }

         curMusic = transMusic;
         transMusic = null;

         curMusicTime = transMusicTime - 1;	// -1 to get the initial sample.
         transMusicTime = 0;

         // Trigger the callback!
         if (MusicEnded != null)
         {
            MusicEnded(group);
         }

         if (AutoLoop)
         {
            AudioGroup groupToTrigger = curMusic;
            curMusic = null; //hack to ensure it actually plays now!
            ScheduleNextMusic(groupToTrigger);
         }
          }
          else
          {
         Debug.LogWarning("Unexpected music has completed playback.");
          }
    }