gpt4 book ai didi

java - Android AudioTrack.write 返回 -4

转载 作者:太空狗 更新时间:2023-10-29 13:21:12 27 4
gpt4 key购买 nike

我正在使用 AudioTrack 在 Android 上播放一些音频。有时我会从 write 方法中得到 '-4' 的返回值。文档说它将返回

the number of shorts that were written or ERROR_INVALID_OPERATION if the object wasn't properly initialized, or ERROR_BAD_VALUE if the parameters don't resolve to valid data and indexes.

AudioTrack 中“ERROR”常量的值是:

  • 错误 = -1
  • ERROR_BAD_VALUE = -2
  • ERROR_INVALID_OPERATION = -3

那么-4是什么意思呢?

这是代码......大致

int bufferSize = AudioTrack.getMinBufferSize(sampleRate, channelConfig, audioEncoding);
audioTrack = new AudioTrack(streamType, sampleRate, channelConfig, audioEncoding, bufferSize, audioMode);
if(audioTrack.getState() != AudioTrack.STATE_UNINITIALIZED){
audioTrack.play();
int response = audioTrack.write(data, 0, size);
}

最佳答案

AudioTrack::write 的原生实现电话 obtainBuffer ,如果 obtainBuffer 返回错误,write 会返回相同的错误。

obtainBuffer 返回 -EINTR 以防当 AudioTrack 状态为 STATE_STOPPING 时被调用,并且 -EINTR 恰好是 -4,所以我最好的猜测是你正在写,而轨道(由于某种原因)正在停止。

关于java - Android AudioTrack.write 返回 -4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28606009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com