【问题标题】:AudioRecord: start() status -38AudioRecord:开始()状态-38
【发布时间】:2013-12-25 23:42:37
【问题描述】:

我有以下问题: 我使用 SpeechRecognizer 来识别几个单词。 我用的

public void onResults

销毁 SpeechRecognizer 的方法。

在销毁之后,我初始化了一个 AudioRecord 并开始从麦克风录制。 这会导致我的 logcat 出现以下错误:

12-09 00:44:01.976: E/AudioRecord(21185): start() status -38

我的代码中没有抛出异常。 AudioRecord 只是无法正常启动。 我假设 SpeechRecognizer 释放麦克风的速度不够快, 因为如果我在 AudioRecord 的初始化之前添加一个 Thread.sleep(200),我 没有遇到这个问题。

由于显而易见的原因,此解决方案非常糟糕。因此,我有以下问题:

如何检查 AudioRecord 是否正确初始化? (我的代码中没有异常。)

_audioRecord.getState() == AudioRecord.STATE_UNINITIALIZED

也是假的。

或者如何检查 SpeechRecognizer 是否正确释放了麦克风?

非常感谢!

【问题讨论】:

  • 检查getRecordingState() 是否等于RECORDSTATE_RECORDING 怎么样?
  • 谢谢,完全忽略了那个。

标签: android audiorecord


【解决方案1】:

您需要确保在您的onPause() 或类似方法中发出audioRecord.stop();audioRecord.release();。如果不这样做,下次运行应用程序时,您将无法访问设备,您将获得start() status -38

【讨论】:

    【解决方案2】:

    我遇到了与此AudioRecord start() error status -38 类似的问题 我最终所做的是循环录音机的可能配置,就像回答者在这个问题中所说的那样 AudioRecord object not initializing 我喜欢这种方法,因为不管你在什么设备上运行它,它最终都会找到它喜欢的配置。

    【讨论】:

    • 嗨,我的 for 循环总是选择 16000 作为采样率,但 AudioRecord 仅在第一次正确初始化。会是什么?
    【解决方案3】:

    正如迈克尔所说,我使用audioRecord.getRecordingState() 检查了录制状态。 通常在audioRecord.startRecording(); 之后,recordingState 变为 RECORDSTATE_RECORDING。 如果 state 不是 RECORDSTATE_RECORDING,我将关闭应用程序。

    audioRecord.startRecording();
    int recordingState = audioRecord.getRecordingState();
    Log.i(VoiceRecorder.class.getSimpleName(), "RecordingState() after startRecording() = " + String.valueOf(recordingState));
    if (recordingState != AudioRecord.RECORDSTATE_RECORDING) {
        Log.i(VoiceRecorder.class.getSimpleName(), "AudioRecord error has occured. Reopen app.");
        System.exit(0);
    }
    

    【讨论】:

      【解决方案4】:

      我有一个不同的应用程序,它可能正在后台运行并且没有释放录音设备。您还需要确保所有其他应用程序都已关闭(使用应用程序之间的切换 > CLEAR ALL)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-25
        • 2014-12-21
        • 2011-12-16
        • 2014-09-14
        • 2020-07-31
        • 1970-01-01
        相关资源
        最近更新 更多