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);
}
相关推荐
华清远见IT开放实验室2 小时前
【项目案例】物联网比较好的10+练手项目推荐,附项目文档/源码/视频
物联网·音视频
躺下睡觉~9 小时前
Unity-Transform类-父子关系
java·unity·游戏引擎
躺下睡觉~10 小时前
Unity-Transform类-缩放和看向
unity·游戏引擎
君莫愁。12 小时前
【Unity】检测鼠标点击位置是否有2D对象
unity·c#·游戏引擎
咩咩觉主12 小时前
Unity实战案例全解析:PVZ 植物卡片状态分析
unity·c#·游戏引擎
小东来14 小时前
电脑端视频剪辑软件哪个好用,十多款剪辑软件分享
音视频
蓝裕安16 小时前
伪工厂模式制造敌人
开发语言·unity·游戏引擎
cuijiecheng201816 小时前
音视频入门基础:AAC专题(8)——FFmpeg源码中计算AAC裸流AVStream的time_base的实现
ffmpeg·音视频·aac
Mr数据杨16 小时前
我的AI工具箱Tauri版-VideoIntroductionClipCut视频介绍混剪
人工智能·音视频
神一样的老师17 小时前
基于环境音频和振动数据的人类活动识别
人工智能·音视频