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
unity3D学习之音频数据的采集要点-audio菜鸟笔记6相关推荐
- java代码视频数据和音频数据的采集
我们经常用直播,但是直播怎么做呢?前面的文章已经搭建好了推流服务器,现在就让我们先从采集数据开始吧,然后压缩数据,然后推流数据等等,一步步来,一定会成个大胖纸的.加油! Activity.java p ...
- Unity3d学习之音频
在游戏中,音效是必不可少的.游戏中的音频分为背景音乐和环境音乐两种. 背景音乐即贯穿全场的音乐,而环境音乐则是特定的,比如水流声,动物的叫声,只有你靠近时才能听得到的声音. unity3d中目前支持4 ...
- unity3D学习之音频播放 、实时变声简化版-audio菜鸟笔记5
这是基于soundtouch写的一个实时变声的C#脚本,因为是调试版,所以可能会有BUG 核心代码: private void OnAudioFilterRead(float[] data, int ...
- Android 音频开发(二) 采集一帧音频数据
这一节主要介绍如何采集一帧音频数据,如果你对音频的基础概念比较陌生,建议看我的上一篇Android 音频开发(一) 基础入门篇.因为音频开发过程中,经常要涉及到这些基础知识,掌握了这些重要的基础知识后 ...
- WebRTC 如何在安卓系统上采集音频数据
目录 步骤一.获取麦克风权限 步骤二.音频采集模块初始化 步骤三.启动音频采集流程 步骤四.音频预处理 我们都知道音视频通讯的前提是采集本地的音频和视频数据信息.今天,我们就来了解一下 WebRTC ...
- 利用Web Audio API将振动数据转化为音频数据并播放
年初在公司做了一个需求:传感器采集到了机器的振动数据,要在网页中利用这个数据播放出振动的声音. 之前只了解过HTML中的<audio>元素可以通过src属性指定音频文件路径来播放音频,现在 ...
- DirectSound播放PCM(可播放实时采集的音频数据)
前言 该篇整理的原始来源为http://blog.csdn.net/leixiaohua1020/article/details/40540147.非常感谢该博主的无私奉献,写了不少关于不同多媒体库的 ...
- python学习音频-机器学习利用Python进行音频数据增强
2019-09-24 机器学习利用Python进行音频数据增强 数据增强通常用于机器学习和深度学习,以便在训练产生大量数据后获得良好的性能. 在这篇文章中,我将展示如何用一些音频增强技术使用输入音频文 ...
- 《CCNA学习指南:数据中心(640-911)》——1.6 考试要点
本节书摘来自异步社区<CCNA学习指南:数据中心(640-911)>一书中的第1章,第1.6节,作者: [美]Gary R. Wright(加里 R.赖特) , W. Richard St ...
最新文章
- 干货分享:自动驾驶核心技术进展之车用毫米波雷达
- 【Unique Binary Search Trees II】cpp
- mysql 之mvcc多版本控制
- SpringBoot拦截器不生效
- Django 出现 “multiple primary key defined”报错
- Python快速学习07:文本文件的操作
- 力扣--扁平化嵌套列表迭代器
- python输入hello输出olleh_leetcode上的python练习(6)
- ActiveMQ queue 代码示例
- Unity3D中JavaScript与C#对比
- ajax注册用户名为空,怎么用ajax和js检测用户名是否合法和不能为空
- Selenium UI自动化测试(五)WebDriver控制浏览器的操作
- 【关系抽取】详聊如何用BERT实现关系抽取
- 深度学习软件资源列表
- java可变参数学习
- java本地储存set_没有数据库的情况下,JAVA如何在本地保存信息
- cve20190708补丁的kb名称_kb4499175补丁下载
- 博士申请 | 新西兰梅西大学王睿俐教授招收语音识别和NLP方向全奖博士生
- 魔众视频管理系统 v3.4.0 常规优化 系统界面升级
- android 调用webservice实现手机号码归属地查询