Unity将麦克风获取的音频实时的处理成可视化的音波
来源:互联网 发布:网络监控如何设置 编辑:程序博客网 时间:2024/06/11 10:25
由于项目需要
领导需要我做一个用过麦克风获取音频 ,并将音频可视化
翻了不少论坛都是将导入进去的音频进行可视化,并没有将麦克风获取的音频实时的可视化,
下面就是我自己弄出来的, 上代码
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; }}效果图如下:
阅读全文
1 0
- Unity将麦克风获取的音频实时的处理成可视化的音波
- Unity实时获取麦克风音频,处理成可视化
- Unity实时接收麦克风音频将音频可视化类卡拉OK效果展示
- Unity中实现获取音频的频谱的可视化均衡器
- 实时获取麦克风输入音量的代码
- Step 9:Processing配合麦克风的实时声音可视化
- Unity获取麦克风录音的方法
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风录音的音量大小
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- Android 实时获取麦克风输入音量的代码
- 使用本地计划任务定时关闭azure虚拟机
- Swift Label计算高度
- 关于 Java 数组的 12 个最佳方法
- 排序与二分查找
- Java8 中reduce的基本使用
- Unity将麦克风获取的音频实时的处理成可视化的音波
- jdk+tomcat安装
- Python序列的切片操作与技巧
- [How to] 使用HBase协处理器---基本概念和regionObserver的简单实现
- 浏览器内核信息汇总和
- Deep Learning模型之:CNN卷积神经网络(二)文字识别系统LeNet-5
- Java中HashMap的实现原理
- perl 调用自己写的pm
- 交换两个数的四种方法