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

ops/2025/3/14 19:54:54/

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

相关文章

【09】单片机编程核心技巧:变量赋值,从定义到存储的底层逻辑

【09】单片机编程核心技巧:变量赋值,从定义到存储的底层逻辑 🌟 核心概念 单片机变量的定义与赋值是程序设计的基础,其本质是通过 RAM(随机存储器) 和 ROM(只读存储器) 的协作实现…

解锁进行性核上性麻痹护理密码,改善患者生活

进行性核上性麻痹(PSP)是一种较为罕见且复杂的神经系统变性疾病,会导致患者逐渐出现姿势不稳、眼球运动障碍、吞咽困难、认知功能下降等一系列症状,给患者及其家庭带来沉重负担。做好健康护理,对提升患者生活质量、延缓…

WPS 接入 DeepSeek-R1 使用指南

引言 在当今的办公环境中,文档处理软件已经成为我们日常工作中不可或缺的工具。WPS Office 作为一款功能强大且用户友好的办公软件,广泛应用于各种场景。而 DeepSeek-R1 是一款先进的人工智能助手,能够提供智能化的文档处理、数据分析、语言…

TA学习之路——1.4 MVP矩阵运算

1.变换矩阵的意义 1.将3D物体转化到2D平面 2.为各个空间的运用做准备 2.MVP矩阵代表什么 MVP矩阵分别是模型(Model)、观察(View)、投影(Projecttion)三个矩阵。我们顶点坐标起始于局部空间(Local Space)…

虚幻引擎入门

虚幻引擎入门 引擎的下载与安装 登录虚幻引擎的官网,进行下载 https://www.unrealengine.com/zh-CN/download首先,下载Epic Games启动程序安装好Epic Games启动程序之后,可以先注册一个账号,通过账号进行登录然后下载相应版本的…

浏览器缓存机制:JavaScript 文件缓存导致 404 错误的解决方案

目录 一、问题原因二、解决方案(一)使用版本号或时间戳作为查询参数(二)设置 HTTP 缓存头部(三)清除浏览器缓存(四)使用服务工作线程(Service Workers) 三、总…

Java中的Logback:高效日志管理解析

1. 引言 在Java应用程序开发中,日志系统扮演着至关重要的角色。它不仅能帮助开发人员追踪程序执行流程,还能在生产环境中快速定位和解决问题。Logback作为SLF4J(Simple Logging Facade for Java)的原生实现,已成为Jav…

使用DeepSeek完成一个简单嵌入式开发

开启DeepSeek对话 请帮我使用Altium Designer设计原理图、PCB,使用keil完成代码编写;要求:使用stm32F103RCT6为主控芯片,控制3个流水灯的原理图 这里需要注意,每次DeepSeek的回答都不太一样。 DeepSeek回答 以下是使…