【零基础入门unity游戏开发——进阶篇】Unity Microphone类处理麦克风相关信息,录制音频并实时处理或保存录制的音频数据
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了
C#篇、unity通用篇、unity3D篇、unity2D篇
。
- 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
- 【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
- 【unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
- 【unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。
这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。
文章目录
- 一、Microphone 的基本功能
- 二、使用 Microphone 的步骤
-
- 1、获取麦克风设备列表
- 2、开始录制音频
- 3、结束录制并播放音频
- 4、获取录制的音频数据
- 4、实时处理音频数据
- 三、完整示例
- 专栏推荐
- 完结
一、Microphone 的基本功能
在 Unity 中,Microphone 类提供了访问设备麦克风的功能,允许你录制音频并实时处理或保存录制的音频数据。
Microphone 类的主要功能包括:
-
获取麦克风设备列表:获取当前设备上可用的麦克风列表。
-
开始录制:从麦克风录制音频数据。
-
停止录制:停止录制音频。
-
获取音频数据:获取录制的音频数据并保存或处理。
二、使用 Microphone 的步骤
1、获取麦克风设备列表
使用 Microphone.devices
属性可以获取当前设备上可用的麦克风列表。
using UnityEngine;
public class MicrophoneTest : MonoBehaviour
{
void Start()
{
// 获取所有可用的麦克风设备
string[] devices = Microphone.devices;
if (devices.Length == 0)
{
Debug.Log("没有找到麦克风设备!");
}
else
{
foreach (string device in devices)
{
Debug.Log("麦克风设备: " + device);
}
}
}
}
2、开始录制音频
使用 Microphone.Start
方法可以从指定的麦克风设备开始录制音频,返回一个AudioClip音频文件可以用来存储。你可以传递以下参数:
- 设备名称(为空时使用默认设备)
- 是否循环录制(设置为
false
时,录制达到指定时长后停止) - 录制时长(单位:秒)
- 采样率(通常为
44100
)
AudioClip recordedClip; // 用于存储录制的音频数据
//按下空格键开始录制
if (Input.GetKeyDown(KeyCode.Space))
{
// 获取第一个麦克风设备
selectedDevice = Microphone.devices[0];
// 开始录制
recordedClip = Microphone.Start(null, true, 10, 44100);
if (recordedClip == null)
{
Debug.Log("录制失败!");
}
else
{
Debug.Log("开始录制...");
}
}
3、结束录制并播放音频
在录制完成后,使用 Microphone.End 方法可以停止录制音频,并将录制的音频数据加载到 AudioSource
中进行播放。
//抬起空格键结束录制
if (Input.