Unity将麦克风获取的音频实时的处理成可视化的音波
2017-09-26 11:11
525 查看
由于项目需要
领导需要我做一个用过麦克风获取音频 ,并将音频可视化
翻了不少论坛都是将导入进去的音频进行可视化,并没有将麦克风获取的音频实时的可视化,
下面就是我自己弄出来的, 上代码
领导需要我做一个用过麦克风获取音频 ,并将音频可视化
翻了不少论坛都是将导入进去的音频进行可视化,并没有将麦克风获取的音频实时的可视化,
下面就是我自己弄出来的, 上代码
using System.Collections; using System.Collections.Generic; using UnityEngine; public class AudioVisualization : MonoBehaviour { public static float volume; private AudioClip micRecord; string device; /// <summary> /// 拖尾的移动速度 要和摄像机的移动速度一致 /// </summary> private int speed; private float x; void Start() { //初始化速度的值 speed = 5; device = Microphone.devices[0];//获取设备麦克风 micRecord = Microphone.Start(device, true, 999, 44100);//44100音频采样率 固定格式 } void Update() { volume = GetMaxVolume(); if (Input.GetKey(KeyCode.Escape)) { Application.Quit(); } //要加粒子特效 产生拖尾 transform.Translate(Vector3.right * speed * Time.deltaTime); x = gameObject.transform.position.x; //print(volume); //处理峰值 if (volume > 0.9f) { volume = volume * speed * Time.deltaTime; gameObject.transform.position = new Vector3(x, volume * 10, 0); } else { gameObject.transform.position = new Vector3(x, volume * 10, 0); } } //每一振处理那一帧接收的音频文件 float GetMaxVolume() { float maxVolume = 0f; //剪切音频 float[] volumeData = new float[128]; int offset = Microphone.GetPosition(device) - 128 + 1; if (offset < 0) { return 0; } micRecord.GetData(volumeData, offset); for (int i = 0; i < 128; i++) { float tempMax = volumeData[i];//修改音量的敏感值 if (maxVolume < tempMax) { maxVolume = tempMax; } } return maxVolume; } }效果图如下:
相关文章推荐
- Unity中实现获取音频的频谱的可视化均衡器
- Unity实时接收麦克风音频将音频可视化类卡拉OK效果展示
- 如何实时对ios中麦克风的数据进行解析,获取声音频率等相关的属性?
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- 从Hive处理日志到可视化到实时
- android 实时获取 麦克风 音量大小
- 微信小程序获取音频时长与实时获取播放进度问题
- Android 实时获取麦克风输入音量的代码
- HTML5操作麦克风获取音频数据(WAV)的一些基础技能
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码【转】
- Android 实时获取麦克风输入音量的代码
- HTML5获取麦克风音频,输出到扬声器
- Unity预计算全局实时GI(四)- 预计算处理过程
- 入门篇(6)获取NAO机器人麦克风数据进行相关处理
- 实时在线音频延时的处理(借用speex)
- Android 实时获取麦克风输入音量的代码
- unity学习日记:音频可视化