Java 数组注意事项(和C中的指针一样,是可以直接用的,修改后不用返回)

问题描述,在获取到PCM数据之后缓存到队列中,结果发现缓存的数据总是被新的数据覆盖,最后才定位到是数组的问题,
在JAVA中数组和C中的指针一样,是可以直接用的,修改后不用返回,我在以下代码中把数据存入队列中,每次新来的数据都还是原来的那个数组,

因为数组一直是原来的那个,所以值一直都会是最新的那个,解决办法就是每次创建一个新的数组再赋值存入队列。



//mAudioData
= new byte[4096];// 此为解决办法
int size = mAudioRecord.read(mAudioData, 0, mAudioData.length);
Frame frame = new Frame();
frame.data = mAudioData;
frame.timestamp = System.nanoTime()/1000;
frame.size = size;
Log.d(TAG, "onPcmFrame: " + frame);
onPcmFrame(frame); 此处存入队列供以后处理使用

猜你喜欢

转载自www.cnblogs.com/Jokeyyu/p/10871147.html