Unity3D中录制和输出wav文件
近期在做视频录制方面的事情,看了下音频的录制和输出。主要参考官方的FrameCapturer:
https://github.com/unity3d-jp/FrameCapturer
wav文件结构较为简单,文件头格式网上有很多,数据这块可以直接采用未压缩的数据。
这里需要注意一点,C#在用StreamWriter写入时,并不会填充所有字节。
例如int型数据占4个字节,而写入时只会填充相应数据大小的字节,所以这里使用BitConverter来做字节的写入
mFileStream.Write(BitConverter.GetBytes(), , );
获取音频这块可以用Unity自己提供的事件:
void OnAudioFilterRead(float[] samples, int channels)
{
...
}
音频写入顺序为左声道-右声道,左声道-右声道 ... 循环。由于Unity默认就是这样的顺序,所以第二个参数也用不到。
再对应wav文件的不同位数,写入字节时进行相应的数值转换操作即可。
工程文件地址:
https://gitee.com/Hont/WavAudioRecorder
Unity3D中录制和输出wav文件的更多相关文章
- c# 中crystal report输出PDF文件
		工程中引入以下crystal report的类库crystaldecisions.crystalreports.enginecrystaldecisions.reportsourcecrystalde ... 
- 在Node.js中使用ejsexcel输出EXCEL文件
		1.背景 在Nodejs应用程序中输出Excel,第一印象想到的一般是node-xlsx,这类插件不仅需要我们通过JS写入数据,还需要通过JS进行EXCEL显示样式的管理. 这是个大问题,不仅代码冗余 ... 
- java中的IO流之文件复制
		O(∩_∩)O哈哈~ 1.综述 一门成熟的语言肯定具备的几个模块:IO,通信,线程,UI...... Java作为一门成熟的程序语言,其IO流是比较复杂的.上个图大家感受下: 简单分析一下,IO分为两 ... 
- Kafka消费者 从Kafka中读取数据并写入文件
		Kafka消费者 从Kafka中读取数据 最近有需求要从kafak上消费读取实时数据,并将数据中的key输出到文件中,用于发布端的原始点进行比对,以此来确定是否传输过程中有遗漏数据. 不废话,直接上代 ... 
- Windwos平台上ffmpeg解码音频并且保存到wav文件中
		先附上代码,测试通过 #include <stdio.h> #include <math.h> #include "libavutil/avstring.h" ... 
- Linux bash 中,如何将正常信息和错误信息输出到文件
		问题描述: $ command 2>> error $ command 1>> output 是否有方法,在bash同一行,实现输出stderr到error文件,输出stdou ... 
- 【转】【整理】将Linux脚本中的正常输出,警告,错误等信息输出到文件中
		本文来自:http://blog.csdn.net/woshinia/article/details/18040063 很早以前 编译的时候 就在用 2>&1,但是一直没有生成一 ... 
- iOS案例:读取指定txt文件,并把文件中的内容输出出来
		用到的是NSString中的initWithContentsOfFile: encoding方法 // // main.m // 读取指定文件并输出内容 // // Created by Apple ... 
- X-UniTMX:导入大型Tiled地图文件(*.tmx)到Unity3d中比较好的插件
		因工作原因,需要导入格子数为1200x1200的Tiled地图文件(*.tmx)到Unity3d中显示出来.尝试过一些其它插件,后面发现X-UniTMX是比较好用的. X-UniTMXhttp://f ... 
随机推荐
- Springboot定时任务原理及如何动态创建定时任务
			一.前言 上周工作遇到了一个需求,同步多个省份销号数据,解绑微信粉丝.分省定时将销号数据放到SFTP服务器上,我需要开发定时任务去解析文件.因为是多省份,服务器.文件名规则.数据规则都不一定,所以要做 ... 
- shiro学习总结(一)----初识shiro
			本系列内容大多总结自官网和张开涛的<跟我学Shiro> 一.shiro简介 1.1.shiro有什么用? shiro是一个功能强大使用简单的java安全框架,主要提供了五大功能: 1.认证 ... 
- C#导出Excel时间格式问题
			Range range = worksheet.get_Range(worksheet.Cells[2, 1], worksheet.Cells[RowCount + 1, ColCount]);ra ... 
- jquery实时获取时间
			$(document).ready(function(){ function time(){ var date=new Date(); var h=date.getHours(); var m=dat ... 
- BZOJ.2000.[HNOI2010]stone取石头游戏(博弈)
			BZOJ 洛谷 低估这道神题了_(:з」∠)_ MilkyWay好狠啊(小声) \(Description\) 有一些数字,被分成若干双端队列(从两边都可以取)和最多两个栈(只能从某一边一个一个取)的 ... 
- 机器学习系列-tensorflow-02-基本操作运算
			tensorflow常数操作 import tensorflow as tf # 定义两个常数,a和b a = tf.constant(2) b = tf.constant(3) # 执行默认图运算 ... 
- Python中的iteritems()和items()
			我用的是Python3.6 在Python3.x中,iteritems() 和 viewitems() 这两个方法都已经废除了,用 items()替换iteritems() ,for循环来遍历出来. 
- (网络数据交互)Android解析Internet的Json资源文件
			常用的Internet数据解析格式和工具: 网页显示的json数据如下: {"type":"FeatureCollection","metadata& ... 
- Module not found: Error: Can't resolve 'XXX' in 'XXXX'
			故障 控制台运行webpack/npm时出现 Module not found: Error: Can't resolve 'XXX' in 'XXXX' 解决方案 npm i XXX --save ... 
- 用java写图片
			登录注册的时候都会有图片验证,这是为了防止暴力破解和恶意注册.写一个思路来实现验证图片的实现,只是一个思路,随机生成文字并没有写. import java.awt.Color; import java ... 
