【问题标题】:Android: AudioRecord.read() return array filled with "0" after phone callAndroid:通话后AudioRecord.read()返回数组填充“0”
【发布时间】:2023-03-14 17:11:01
【问题描述】:

我正在编写一个程序来实时录制和播放声音。它运行良好,但在我拨打电话并结束电话后,程序播放约 1 秒,然后它无声无息。 我检查值并查看 audioRecord.read(buffer, 0, buffer.leng) 返回填充零值的数组。 感谢您的帮助!

【问题讨论】:

    标签: android phone-call audiorecord


    【解决方案1】:

    您的手机控制了麦克风并阻止了它的录音。检查Log是否发生这种情况read()返回的值

    while(recording) {
    
        int resultOfRead = audioRecord.read(anArray, 0, anArray.length);
        Log.d("MY_TAG", "Read result: " + resultOfRead);
    
        if(resultOfRead < 0) {
    
            try {
                Thread.sleep(100, 0);
                audioRecord.startRecording(); // restart audio recording
            } catch(Exception e) {
                Log.e(TAG, "exception", e); // Error trying to sleep thread
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      • 2016-04-28
      • 2020-10-22
      • 2019-07-17
      相关资源
      最近更新 更多