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);
}
相关推荐
XLP新龙鹏科技6 小时前
视频拼接类产品介绍
经验分享·音视频·视频拼接·产品方案·拼接类
SmalBox7 小时前
【光照】[PBR][法线分布]为何不选Beckmann
unity·渲染
xcg3401238 小时前
SpringBoot结合Vue 播放 m3u8 格式视频
音视频·hls·m3u8·流媒体播放
EasyDSS9 小时前
超越单向观看:视频直播点播视频会议平台EasyDSS如何赋能远程实时音视频互动场景?
音视频·实时音视频
嘀咕博客9 小时前
Kimi-Audio:Kimi开源的通用音频基础模型,支持语音识别、音频理解等多种任务
人工智能·音视频·语音识别·ai工具
Ai工具分享12 小时前
家庭录像损坏了无法播放?视频修复让回忆重现
音视频
红米饭配南瓜汤21 小时前
WebRTC 发送端 SSRC 生成流程总结
网络·网络协议·音视频·webrtc·媒体
技术小成1 天前
大黄蜂云课堂vep格式加密视频录屏截图翻录转换为mp4
音视频
一只一只1 天前
Unity 3D笔记——《B站阿发你好》
笔记·3d·unity
EasyCVR1 天前
视频融合平台EasyCVR在智慧工地中的应用:构建安全、智能、高效的“云上工地”
安全·音视频