Объявление
public static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool stream);public static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool stream, AudioClip.PCMReaderCallback pcmreadercallback);
public static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool stream, AudioClip.PCMReaderCallback pcmreadercallback, AudioClip.PCMSetPositionCallback pcmsetpositioncallback);
Устаревший Аргумент _3D AudioClip устарел. Вместо этого используйте свойство spaceBlend AudioSource для переключения между 2D- и 3D-воспроизведением.
public static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream);
Устаревший Аргумент _3D AudioClip устарел. Вместо этого используйте свойство spaceBlend AudioSource для переключения между 2D- и 3D-воспроизведением.
public static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream, AudioClip.PCMReaderCallback pcmreadercallback);
Устаревший Аргумент _3D AudioClip устарел. Вместо этого используйте свойство spaceBlend AudioSource для переключения между 2D- и 3D-воспроизведением.
public static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream, AudioClip.PCMReaderCallback pcmreadercallback, AudioClip.PCMSetPositionCallback pcmsetpositioncallback);
Параметры
name | Название клипа. |
lengthSamples | Количество выборочных кадров. |
channels | Количество каналов на кадр. |
frequency | Частота выборки клипа. |
_3D | Аудиоклип воспроизводится в формате 3D. |
stream | Истинно, если клип передается в потоковом режиме, то есть если обратный вызов pcmreader генерирует данные на лету. |
pcmreadercallback | Этот обратный вызов вызывается для создания блока выборочных данных. Непотоковые клипы вызывают это только один раз во время создания, в то время как потоковые клипы вызывают это постоянно. |
pcmsetpositioncallback | Этот обратный вызов вызывается всякий раз, когда клип зацикливается или изменяет позицию воспроизведения. |
Возвращает
AudioClip Ссылка на созданный AudioClip.
Описание
Создает пользовательский аудиоклип с именем и заданной длиной в семплах, каналах и частоте.
Установите собственные аудиоданные с помощью SetData. Используйте делегаты PCMReaderCallback и PCMSetPositionCallback для получения обратного вызова всякий раз, когда клип считывает данные и меняет положение. Если для потока установлено значение true, Unity будет по запросу считывать небольшие фрагменты данных. Если false, то при создании будут прочитаны все семплы.
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;
}
}