我正在使用AudioTrack在安卓上播放一些音频。有时,我从写方法中得到'-4‘的返回值。文件上说它会回来
如果未正确初始化对象,则编写的短路数或ERROR_INVALID_OPERATION数;如果参数不能解析为有效的数据和索引,则为ERROR_BAD_VALUE。
AudioTrack中“错误”常量的值是:
那么-4意味着什么?
这是code...roughly
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);
}发布于 2015-02-20 11:44:08
AudioTrack::write的本机实现调用obtainBuffer,如果obtainBuffer返回错误,write将返回相同的错误。
obtainBuffer返回-EINTR,以防在AudioTrack状态为STATE_STOPPING时调用,而-EINTR恰好是-4,所以我的最佳猜测是,在轨道(出于某种原因)停止时,您正在进行写操作。
https://stackoverflow.com/questions/28606009
复制相似问题