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 小时前
vue3使用音频audio标签
音视频·audio·preload·加载音频文件·vue3使用audio·vue3使用音频·audio标签
杀死一只知更鸟debug12 小时前
Unity自学之旅04
unity
k56946216613 小时前
失业ing
unity·游戏引擎
优联前端14 小时前
Web 音视频(二)在浏览器中解析视频
前端·javascript·音视频·优联前端·webav
我真不会起名字啊15 小时前
“深入浅出”系列之音视频开发:(3)音视频开发的学习路线和必备知识
音视频
是店小二呀15 小时前
【2024年CSDN平台总结:新生与成长之路】
数据库·人工智能·程序人生·aigc·音视频
橘子遇见BUG15 小时前
Unity Shader学习日记 part5 CG基础
学习·unity·游戏引擎·图形渲染
无限大.16 小时前
优化使用 Flask 构建视频转 GIF 工具
python·flask·音视频
音视频牛哥20 小时前
RTMP|RTSP播放器只解码视频关键帧功能探讨
音视频·实时音视频·大牛直播sdk·rtsp播放器·rtmp播放器·rtsp player·rtmp player
普通网友1 天前
Android MediaPlayer音频播放器详解
android·音视频