unity3D学习之声音的采集与处理-audio菜鸟笔记2
来源:互联网 发布:航天信息a6软件下载 编辑:程序博客网 时间:2024/06/03 06:32
在此我想声明一下,我的文章都是上网查质料和参考大神的博客写的,我只是想把自己做过的一些笔记记录下来。希望大家能理解,不喜勿喷。
原文链接:http://blog.csdn.net/dfgjava/article/details/47102997点击打开链接
进阶版链接:http://www.cnblogs.com/greyhh/p/6898427.html点击打开链接
using System.Collections;using System.Collections.Generic;using UnityEngine;public class RecordText : MonoBehaviour { private AudioClip audioclip; private byte[] recordData; //无损音质的采样率=44100,即每秒音频用44100个float数据表示,但语音8000就够了(通常的移动电话=8000)。 //音频数据太大不利于传输和存储。 public const int SamplingRate = 8000;//按钮按下开始录音,松开结束 void OnRecording(GameObject goSender, bool flag) { if (flag){ //Microphone.End()如果你传递一个无效或者空的字符串设备名称那么默认麦克风将会被使用。你可以从设备属性中获取可用麦克风设备列表。 Microphone.End(null);//可以不需要,但开始录音前调用一次是个好习惯。 //参数分别是麦克风的名字、是否循环录制、录音长度和音质 audioclip = Microphone.Start(null, false, 10, SamplingRate); } else//结束录音 { int audioLength;//录音的长度,单位为秒,ui上可能需要显示。 int lastPos = Microphone.GetPosition(null);//位置 //如果你传递一个无效或者空的字符串设备名称那么默认麦克风将会被使用。你可以从设备属性中获取可用麦克风设备列表。 if (Microphone.IsRecording(null)){//(查询是否记录当前设备)录音小于10秒 audioLength = lastPos / SamplingRate; } else { audioLength = 10; } Microphone.End(null);//录音结束,audioclip可以播放了。 if (audioLength < 1.0f) { return; }//小于1秒不处理。 ////压缩后的recordData便于网络传输。 //recordData = AudioClipCompressor.CompressAudioClip(clip); ////本地可以用sqlit存储, //int soundId = string.Format("{0}{1}", player.ID, System.DateTime.Now.ToString()); //DbSound dbs = new DbSound(); //dbs.InsertSound(soundId, audioLength, recordData); //dbs.CloseSqlConnection(); } }}
文中的保存方法有点问题,搞不懂,所以我找了篇关于保存的文章:http://blog.csdn.net/awnuxcvbn/article/details/50737029点击打开链接
关于音频的压缩,有很多压缩算法,已不再本文涉及的范围内,会用到的接口:1、AudioClip.GetData接口可以将audilClip转化为float[] samples。2、AudioClip.Creat()创建AudioClip,,然后AudioClip.SetData将float[] samples数据设置到clip
阅读全文
0 0
- unity3D学习之声音的采集与处理-audio菜鸟笔记2
- unity3D学习之声音的采集与处理-audio菜鸟笔记1
- unity3D学习之音频数据的采集要点-audio菜鸟笔记6
- unity3D学习之音频基础原理-audio菜鸟笔记3
- unity3D学习之音频测试-audio菜鸟笔记4
- unity3D学习之音频播放 、实时变声简化版-audio菜鸟笔记5
- Audio Capture 声音采集
- matlab处理采集的声音数据
- unity3D学习之ITween例子测试-UI菜鸟笔记1
- 小for的Cocos2d-x学习笔记与感悟8之场景切换和声音控制
- 加密与解密二版菜鸟学习笔记(2) - SEH 结构化异常处理
- Unity3D的学习笔记与资料
- Unity3D学习笔记之脚本的生命周期
- Unity3D学习之(血条的制作以及声音的添加)
- 菜鸟的学习笔记
- HTML5学习笔记之audio标签
- 新手菜鸟学习C#的笔记总结 之数组与集合(上)
- 新手菜鸟学习C#的笔记总结 之数组与集合(下)
- 带头链表几种操作的思路和代码
- js中的事件委托或是事件代理详解
- 欢迎使用CSDN-markdown编辑器
- git学习
- [PHP] GD库(一):图像处理
- unity3D学习之声音的采集与处理-audio菜鸟笔记2
- Spring 下默认事务机制中@Transactional 无效的原因
- TensorFlow Doc编程指南——1 变量的创建、初始化、存储、加载
- 运行python
- mysql视图
- jqery和js如何判断checkbox是否选中
- String类简介及与StringBuffer、StringBuilder区别
- Dialog里加ViewPager
- 大小端以及浮点数在内存中的存储方式