unity3D学习之音频数据的采集要点-audio菜鸟笔记6

之前的那些博文都只是很粗糙的知识跟一些自己的练习而已,这次我将介绍一下自己用过的音频数据采集的方法:

1、AudioClip.GetData(a, b)

可以直接从AudioSource组件中的音频文件获取数据,不管是mute是否为true,还是volume为0都能获取到音频的数据,数据长度为第b个数据开始取样,长度为a个数据(最小为64个,关于这个可以去查查api)。


获取某一段音频:

float[] tempclip = new float[audiosource.timeSamples - TSamples];
  audiosource.clip.GetData(tempclip, TSamples);
  audiosource.clip = AudioClip.Create("newClip", tempclip.Length, 1, frequencyClip, false);
  audiosource.clip.SetData(tempclip, 0);

2.AudioSource.GetSpectrumData(a, 0,FFTWindow.BlackmanHarris)

通过音频组件获取音频数据,自由在mute为false,volume不为0的情况下才能获取数据(即:必须音频放出声音才能获取音频数据),a是数据长度(同上),0是声道数,FFTWindow是取样级别,级别越高取样越精确。用法类似于AudioClip.GetData(a, b)。


3.OnAudioFilterRead(float[] data, int channels)

这个是unity自带的方法,有点类似于Update()方法,不过这个方法会不断的获取全局的音频数据(当有多种音频同时播放时,会获取混合声音的数据,可以用做声音的合并)然后再流回去变为声音输出。data是取样数据组,固定为2048个;channels是声道数,默认是2个(即:data[0]和data[1]的数值是一样的)。


使场景全局静音,结合上面2种方法不管是mute为false,还是volume为1,都可以获取到音频数据:

private void OnAudioFilterRead(float[] data, int channels)
{
    for (int i = 0; i < data.Length; i++)
    {
        data[i] = 0;
    }
}


同时可以改变音频的数据来达到变声的效果:
private void OnAudioFilterRead(float[] data, int channels)
{
    for (int i = 0; i < data.Length; i++)
    {
        data[i] = data[i]*2f;
    }
}


除了我说的这些之外还有很多可以利用这些方法实现的功能,发挥你的想象力吧d=====( ̄▽ ̄*)b

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
蓝牙核心规范(v5.4)11.1-le audio 笔记是蓝牙技术在音频传输领域的重要突破,它为音频设备之间的无线通信提供了更好的解决方案。要了解其诞生的前世今生,需要从蓝牙技术的发展历程和音频传输的需求出发。 蓝牙技术最初是由瑞典的爱立信公司于1994年提出的,主要用于在移动设备之间进行短距离的无线通信。起初,蓝牙技术主要应用于数据传输,例如手机与耳机之间的通信。随着技术的不断进步,人们对音频传输的需求越来越大,这促使了蓝牙技术在音频领域的拓展。 在过去的版本中,蓝牙技术在音频传输上还存在一些问题,如传输质量不稳定、延迟较高等。为了解决这些问题,蓝牙核心规范(v5.4)11.1-le audio 笔记于20xx年发布,它是蓝牙技术在音频传输上的一次重要突破。 11.1-le audio 是指针对低功耗设备的音频传输规范。它采用了新的音频编解码算法和协议,能够在保证音质的同时,降低能耗和延迟。这使得蓝牙设备可以更好地支持高品质音频的传输,例如无线耳机、扬声器和音响等。 此外,11.1-le audio 还具备一些其他的优势。它支持多路音频传输,可以同时连接多个音频设备,实现多播功能。同时,它还具备较高的兼容性,可以与之前版本的蓝牙技术进行互操作。 总的来说,蓝牙核心规范(v5.4)11.1-le audio 笔记的诞生是蓝牙技术在音频传输领域的一次重要进步。它解决了以往版本在音质、能耗和兼容性等方面的不足,并且为音频设备之间的无线通信提供了更好的解决方案。作为蓝牙技术的一个重要分支,它对于无线音频设备的发展和普及具有积极的推动作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值