android缓冲区溢出执行代码,android – AudioRecord:缓冲区溢出?

使用我的应用程序进行RECORDING时,我收到缓冲区溢出.录制在服务中执行.我无法弄清楚为什么我从AudioFlinger收到此消息.

下面我实例化AudioRecord对象并设置它的回调.

bufferSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);

aRecorder = new AudioRecord(audioSource, sampleRate, channelConfig, audioFormat, bufferSize);

aRecorder.setRecordPositionUpdateListener(updateListener);

bytesPerSample = bitsPerSample / 8;

int bytesPerFrame = nChannels * bytesPerSample;

framePeriod = bufferSize / bytesPerFrame; // nr of frames that can be kept in a bufferSize dimension

int result = aRecorder.setPositionNotificationPeriod(framePeriod);

buffer = new byte[bufferSize];

audioRecord回调:

private AudioRecord.OnRecordPositionUpdateListener updateListener = new AudioRecord.OnRecordPositionUpdateListener(){

public void onPeriodicNotification(AudioRecord recorder){

int result = aRecorder.read(buffer, 0, buffer.length);

}

public void onMarkerReached(AudioRecord recorder)

{}

};

我怀疑这个问题与:aRecorder.setPositionNotificationPeriod(framePeriod)有关; – 也许这个bufferSize的周期太大,而更快(更小)的周期将解决问题.

有人能告诉我如何摆脱缓冲区溢出?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值