public void PlayScheduled (double time);

Parámetros

time Tiempo en segundos en la línea de tiempo absoluta a la que AudioSettings.dspTime hace referencia cuando el sonido debería comenzar a reproducirse.

Descripción

Reproduce el clip en un tiempo especifico en la linea de tiempo absoluta que AudioSettings.dspTime lee de.

Esta es la forma preferida de coser AudioClips en los reproductores de música porque es independiente de la velocidad de frames y da al sistema de audio tiempo suficiente para preparar la reproducción del sonido para buscarlo en medios donde la apertura y el almacenamiento en búfer tardan mucho tiempo ) Sin causar picos repentinos de la CPU.

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(AudioSource))] public class ExampleClass : MonoBehaviour { public float bpm = 140.0F; public int numBeatsPerSegment = 16; public AudioClip[] clips = new AudioClip[2]; private double nextEventTime; private int flip = 0; private AudioSource[] audioSources = new AudioSource[2]; private bool running = false; void Start() { int i = 0; while (i < 2) { GameObject child = new GameObject("Player"); child.transform.parent = gameObject.transform; audioSources[i] = child.AddComponent<AudioSource>(); i++; } nextEventTime = AudioSettings.dspTime + 2.0F; running = true; } void Update() { if (!running) return; double time = AudioSettings.dspTime; if (time + 1.0F > nextEventTime) { audioSources[flip].clip = clips[flip]; audioSources[flip].PlayScheduled(nextEventTime); Debug.Log("Scheduled source " + flip + " to start at time " + nextEventTime); nextEventTime += 60.0F / bpm * numBeatsPerSegment; flip = 1 - flip; } } }

El ejemplo en AudioSource.SetScheduledEndTime muestra cómo puede reproducir dos clips de audio sin saltos ni clics entre los clips. El enfoque es tener dos AudioSources con clips adjuntos, y en-colar cada clip utilizando su AudioSource.

See Also: SetScheduledStartTime.