Unity AudioClip和PCM音频数据的转化

1 PCM音频数据转化AudioClip

假设PCM音频当前是16Khz采样率,16bit数据

复制代码
 byte[] pcmBytes=new byte[10240];
 float[] floatClipData = new float[audioBytes.Length/2];
 for (int i = 0; i < audioBytes.Length; i+=2)
 {  
     floatData[i / 2] = (short)((audioBytes[i + 1] << 8) | audioBytes[i]) / 32768.0f;
 }
 // 构造一个新的AudioClip
 AudioClip audioClip = AudioClip.Create("PCMClip", floatData.Length, 1, 16000, false);
 // 将音频数据设置到AudioClip中
 audioClip.SetData(floatData, 0);
 audiosource.clip = audioClip;
 audiosource.Play();

2 提取AudioClp中的数据转化为PCM bytes字节数组

复制代码
AudioClip audioClip = new AudioClip();
float[] audioData = new float[audioClip.samples * audioClip.channels];
audioClip.GetData(audioData, 0);
byte[] pcmBytesData = new byte[audioData.Length * 2];
for (int i = 0; i < audioData.Length; i++)
{
    short value = (short)(audioData[i] * short.MaxValue);
    pcmBytesData[i * 2] = (byte)(value & 0x0F);
    pcmBytesData[i * 2 + 1] = (byte)((value >> 8) & 0x0F);
}
相关推荐
卢锡荣1 小时前
Type-c OTG数据与充电如何进行交互使用应用讲解
c语言·开发语言·计算机外设·电脑·音视频
_乐无1 小时前
Unity加载gly 点云 高斯泼溅渲染
unity
坚定信念,勇往无前1 小时前
unity发布BuildWebGL.wasm 加载过慢
unity·wasm
沛沛老爹5 小时前
Web开发者转型AI:多模态Agent视频分析技能开发实战
前端·人工智能·音视频
avi91115 小时前
Unity Data Excel读取方法+踩坑记;和WPS Excel的一些命令
unity·游戏引擎·excel·wps·data
等风来不如迎风去6 小时前
【UniVA】1:统一的视频agent:智能体系统,专门用于处理复杂的视频生成、编辑和理解任务
音视频
知秋一叶1237 小时前
Miloco v0.1.6 :米家摄像头清晰度配置 + RTSP 音频传输
人工智能·音视频·智能家居
天人合一peng7 小时前
Unity 中Canvas 或image打勾时不显示
unity
xmRao9 小时前
Qt+FFmpeg 实现音频重采样
qt·ffmpeg·音视频
发哥来了9 小时前
主流AI视频生成模型商用化能力评测:三大核心维度对比分析
大数据·人工智能·音视频