【零基础入门unity游戏开发——进阶篇】Unity Microphone类处理麦克风相关信息,录制音频并实时处理或保存录制的音频数据

devtools/2025/3/15 12:07:26/

考虑到每个人基础可能不一样,且并不是所有人都有同时做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.

http://www.ppmy.cn/devtools/167285.html

相关文章

部署项目至服务器:响应时间太长,无法访问此页面?

在我们部署项目到服务器上的时候,一顿操作猛如虎,打开页面..... 这里记录一下这种情况是怎么回事。一般就是服务器上的安全组没有放行端口。 因为我是用宝塔进行项目部署的。所以遇到这种情况,要去操作两边(宝塔and服务器所属平台…

吴恩达机器学习笔记复盘(三)Jupyter NoteBook

Jupyter NoteBook Jupyter是一个开源的交互式计算环境: 特点 交互式编程:支持以单元格为单位编写和运行代码,用户可以实时看到代码的执行结果,便于逐步调试和理解代码逻辑。多语言支持:不仅支持Python,还…

解决Docker Desktop中ext4.vhdx文件过大的问题

ext4.vhdx是Docker Desktop在Windows系统上使用WSL2(Windows Subsystem for Linux 2)时,用于存储Linux文件系统的虚拟硬盘文件。 基本概念 VHDX格式:VHDX是微软推出的一种虚拟硬盘格式,具有更大的存储容量、更好的性能…

DeepSeek R1在医院后勤故障报修工单自动化处理中的路径设计

一、总论 随着现代医院管理对信息化、自动化的要求不断提高,传统的人工操作和手工记录已经无法满足高效、精确、及时的需求,尤其在医院后勤的故障报修处理中,人工操作不仅耗时且容易出错。因此,构建一个智能化、自动化的故障报修…

C语言从入门到精通

主要内容 1. 基础知识 C语言概述:介绍C语言的历史、特点和发展。 数据类型:讲解基本数据类型、常量、变量及其存储类别。 运算符与表达达:涵盖赋值、算术、关系、逻辑等运算符和表达式。 输入输出函数:介绍字符、字符串和格式化的…

游戏引擎学习第152天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾昨天的内容 这个节目展示了我们如何从零开始制作一款完整的游戏。我们不使用任何游戏引擎或库,而是从头开始创建一款游戏,整个开发过程都会呈现给大家。你将能够看到每一行代码的编写,了解…

CentOS 系统安装 docker 以及常用插件

博主用的的是WindTerm软件链接的服务器,因为好用 1.链接上服务器登入后,在/root/目录下 2.执行以下命令安装docker sudo yum install -y yum-utilssudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.reposudo…

Java 大视界 -- Java 大数据在智能教育虚拟实验室建设与实验数据分析中的应用(132)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…