name | Nombre del clip. |
lengthSamples | Cantidad de frames de muestra. |
channels | Cantidad de canales por frame. |
frequency | Frecuencia de sample del clip. |
_3D | El clip se reproduce en 3D |
stream | True is el clip se reproduce en streaming, esto es, si el pcmreadercallback genera datos sobre la marcha. |
pcmreadercallback | Este callback es invocado para generat un bloque de datos de muestra. Los clips de tipo no-streaming (es decir, los que no se reproducen sobre la marcha) llaman a este callback solo una vez cuando se están creando, mientas que los clips de streaming lo llaman continuamente. |
pcmsetpositioncallback | Este callback es invocado cuando el clip se reinicia o cambia de posición de reproducción. |
AudioClip Una referencia al AudioClip creado
Crea un AudioClip de usuario, con un nombre y con la duración determinada en los samples, canales y frecuencia.
Establece tus propios datos de audio con SetData. Use los delegados PCMReaderCallback y PCMSetPositicionCallback para obtener un callback cuando el clip lea datos y cambie de posición. Si stream es true (verdadero), Unity pedirá datos en pequeños trozos. Si es false (falso) todas los samples se leerán durante la creación.
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public int position = 0; public int samplerate = 44100; public float frequency = 440;
void Start() { AudioClip myClip = AudioClip.Create("MySinusoid", samplerate * 2, 1, samplerate, true, OnAudioRead, OnAudioSetPosition); AudioSource aud = GetComponent<AudioSource>(); aud.clip = myClip; aud.Play(); }
void OnAudioRead(float[] data) { int count = 0; while (count < data.Length) { data[count] = Mathf.Sin(2 * Mathf.PI * frequency * position / samplerate); position++; count++; } }
void OnAudioSetPosition(int newPosition) { position = newPosition; } }