我当时正在为游戏制作音乐播放器,但遇到了麻烦。发送带有完整的.wav文件样本的声音数据包太大。代码:
float[] samples = new float[clip.samples * 2];
clip.GetData(samples, 0);
int i = 0;
while (i < samples.Length)
{
samples[i] = samples[i] * 0.5F;
i++;
}
我怎么只能获得1秒的AudioClip样本?
答案 0 :(得分:0)
您可以尝试
void Start()
{
audioSource.time = 13.21f; // assuming that you already have reference to your AudioSource
audioSource.Play();
}
void Update()
{
if(audioSource.time > 14.57f){
audioSource.Stop();
}
}
答案 1 :(得分:0)
如果阵列中已经有样本,则以44100hz采样为一秒..您猜对了44100个样本,如果将这些样本复制到另一个阵列中,则只需提取一秒。 现在播放它们是稍微不同的事情,因为您可能需要深入研究OnAudioFilterRead()回调,但是如果这只是您要播放的内容,您也可以使用上面的答案