音频的录制逻辑(外部麦克风)
来源:互联网 发布:淘宝ulzzang什么意思 编辑:程序博客网 时间:2024/05/21 10:10
#region 音频的录制逻辑
private AudioClip mAudioClip;
private int audioLength;
private int maxRecordTime = 10;
private int samplingRate = 12000;
/// <summary>
/// 开始录制视频时调用音频录制
/// </summary>
/// <returns></returns>
public bool TryStartRecording()
{
try
{
string[] micDevices = Microphone.devices;
if (micDevices.Length == 0)
{
UnityEngine.Debug.LogWarning("没有找到录音组件");
}
UnityEngine.Debug.LogWarning("####################111##@@@==>> ");
Microphone.End(null);
mAudioClip = Microphone.Start(null, false, maxRecordTime, samplingRate);
UnityEngine.Debug.LogWarning("####################111##@@@==>> "+ mAudioClip);
}
catch (Exception e)
{
UnityEngine.Debug.LogWarning("####################22##@@@==>> ");
return false;
}
return true;
}
public void EndRecording()
{
int lastPos = Microphone.GetPosition(null);
if (Microphone.IsRecording(null))
{
audioLength = lastPos / samplingRate;
}
else
{
audioLength = maxRecordTime;
}
UnityEngine.Debug.LogWarning("####################22##@@@==>> "+ mAudioClip+" dsad ");
Microphone.End(null);
//UnityEngine.Debug.LogWarning("####################22##@@@==>> ");
//if (audioLength < 1.0f)
//{
// mAudioClip = null;
// return;
//}
}
public byte[] GetData()
{
var data = new float[mAudioClip.samples * mAudioClip.channels];
mAudioClip.GetData(data, 0);
byte[] bytes = new byte[data.Length * 4];
Buffer.BlockCopy(data, 0, bytes, 0, bytes.Length);
return ConvertBytesZlib(bytes, CompressionMode.Compress);
}
public byte[] ConvertBytesZlib(byte[] data, CompressionMode compressionMode)
{
CompressionMode mode = compressionMode;
if (mode != CompressionMode.Compress)
{
if (mode != CompressionMode.Decompress)
{
throw new NotImplementedException();
}
return ZlibStream.UncompressBuffer(data);
}
return ZlibStream.CompressBuffer(data);
}
#endregion
阅读全文
0 0
- 音频的录制逻辑(外部麦克风)
- android 录制音频的时候,调用麦克风出停止
- 用ClipDrawable实现音频录制是的麦克风分贝效果
- Android 音频的录制
- AudioRecord音频录制的IllegalStateException
- 音频的录制与播放
- 录制wav格式的音频
- javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)
- javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)
- iOS 屏幕录制 (可选录入麦克风的声音)
- alsa 麦克风采集音频
- 音频录制
- 音频录制
- 录制音频
- 录制音频
- 音频录制
- 录制音频
- FFmpeg 录制桌面、麦克风、摄像头
- butterknife详细使用及混淆打包和新版本(8.6.0)的使用方法
- Mybatis 多表关联查询,快速添加返回类型
- 全面介绍Windows内存管理机制及C++内存分配实例(三):虚拟内存
- 地址栏搜索参数转为对象
- 工业现场相机坐标系和机械手坐标系的标定(1)-相机和机械手分离的情况
- 音频的录制逻辑(外部麦克风)
- 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
- 一道据说是苹果的面试题
- 电脑电源中,光耦的作用是什么?
- 广播唤起一个界面A 按home键后 点击应用图标应用重新加载未出现界面A
- Stagefright AwesomePlayer 播放流程的函数调用
- 找不到依赖包:Could not find com.android.support.constraint:constraint-layout:1.0.1
- 全面介绍Windows内存管理机制及C++内存分配实例(五):堆
- Haproxy的详细安装配置及注意事项