Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 麦克风启动功能冻结unity应用程序_C#_Unity3d_Audio_Audio Recording_Microphone - Fatal编程技术网

C# 麦克风启动功能冻结unity应用程序

C# 麦克风启动功能冻结unity应用程序,c#,unity3d,audio,audio-recording,microphone,C#,Unity3d,Audio,Audio Recording,Microphone,启动麦克风会使整个应用程序完全冻结5秒(始终为5秒)。Unity 5.6.0f3 代码: 启动麦克风前毫秒2结果显示0 ms启动后麦克风显示5011 有什么建议吗?您应该尝试将麦克风连接到不同的端口,如果是USB,可能是您的计算机找不到麦克风的问题。m_maxRecordingLengthinesconds有什么值?是麦克风。启动阻塞呼叫(我敢打赌)?如果是这样,那么这个调用只是阻塞了你的主线程。临时冻结是一个bug。错误报告的文件。看起来他们不是在另一个线程上进行调用。当麦克风启动时,这应该是

启动麦克风会使整个应用程序完全冻结5秒(始终为5秒)。Unity 5.6.0f3

代码:

启动麦克风前毫秒2结果显示0 ms启动后麦克风显示5011
有什么建议吗?

您应该尝试将麦克风连接到不同的端口,如果是USB,可能是您的计算机找不到麦克风的问题。

m_maxRecordingLengthinesconds有什么值?是
麦克风。启动
阻塞呼叫(我敢打赌)?如果是这样,那么这个调用只是阻塞了你的主线程。临时冻结是一个bug。错误报告的文件。看起来他们不是在另一个线程上进行调用。当麦克风启动时,这应该是一个带有回调函数的异步函数。@程序员即使它是一个错误,因为它不是异步的,为什么启动总是需要5秒钟?但也不总是这样,因为如果我重新启动计算机,需要2毫秒的时间,然后突然没有任何模式,需要5秒钟才能启动麦克风,这听起来很奇怪,该功能是枚举计算机上的麦克风,然后启动它。它应该在另一个线程中完成。这不是你的错。这是API的一个问题。您必须提交bug报告,然后等待修复,或者您可以为最常用的平台(Windows、iOS、Android)构建本机麦克风插件。
public void StartRecording()
    {
        System.Diagnostics.Stopwatch sw1 = new System.Diagnostics.Stopwatch();
        sw1.Start();
        if (!Microphone.IsRecording(null))
        {
            m_ForcedStopRecording = false;
            m_RecordingStartTime = Time.time;
            Debug.Log("ms before start microphone 2: " + sw1.ElapsedMilliseconds);
            m_RecordedAudio = Microphone.Start(null, false, m_MaxRecordingLengthInSeconds, m_RecordingFrequency);
            Debug.Log("ms after start microphone: " + sw1.ElapsedMilliseconds);
            StartCoroutine(WaitForRecordingTimeout());
        }
        Debug.Log("total StartRecording: " + sw1.ElapsedMilliseconds);
    }