qq_41510270 2020-03-22 19:26 采纳率: 0%
浏览 525

Android使用AudioRecord录音,手机息屏一分钟后录音采样值全为0?

Android使用AudioRecord录音,手机息屏一分钟后录音采样值全为0。
部分代码如下:

try {
            OutputStream os = new FileOutputStream(file);
            BufferedOutputStream bos = new BufferedOutputStream(os);
            DataOutputStream dos = new DataOutputStream(bos);
            // Create a new AudioRecord object to record the audio.
            mRecordBufferSize = AudioRecord.getMinBufferSize(mSampleRateInHz, channelConfiguration, audioEncoding) * 2;

            //录音类
            AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, mSampleRateInHz, channelConfiguration, audioEncoding, mRecordBufferSize);
            short[] buffer = new short[mRecordBufferSize];
            audioRecord.startRecording();

            mStopRecording = false;
            /*
            对录音数据保存到本地并添加到缓存数组中
            */
            while (mStartRecording) {
                    short bufferx;
                    int bufferReadResult = audioRecord.read(buffer, 0, mRecordBufferSize);
                    for (int i = 0; i < bufferReadResult; i++) {
                            bufferx = Short.reverseBytes(buffer[i]);
                            dos.writeShort(bufferx);
                    }
                    writeBuffer(buffer);
            }
            //停止录音
            audioRecord.stop();
            dos.close();
            bos.close();
            os.close();

息屏1分钟(很准确的1分钟)后bufferx全为0,唤醒屏幕后又能正常录音。
如何解决这个问题?项目需求息屏时也能完全正常录音。

  • 写回答

1条回答 默认 最新

  • yfzhu 2021-07-19 11:27
    关注

    解决了吗

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?