Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在AudioTrack中播放随机短阵列不会产生任何结果_Java_Android - Fatal编程技术网

Java 在AudioTrack中播放随机短阵列不会产生任何结果

Java 在AudioTrack中播放随机短阵列不会产生任何结果,java,android,Java,Android,我想知道Audiotrack是如何工作的,所以我生成了一个长度为60000的随机短数组,并尝试用Audiotrack播放它: public short[] generatedNoise=new short[60000]; for(int i=0;i<=59999;i++){ generatedNoise[i]=(short) random.nextInt(Short.MAX_VALUE + 1); } AudioTrack at=n

我想知道Audiotrack是如何工作的,所以我生成了一个长度为60000的随机短数组,并尝试用Audiotrack播放它:

public short[] generatedNoise=new short[60000];
for(int i=0;i<=59999;i++){
                generatedNoise[i]=(short) random.nextInt(Short.MAX_VALUE + 1);
            }
AudioTrack  at=new AudioTrack(AudioManager.STREAM_MUSIC, 48000, AudioFormat.CHANNEL_OUT_MONO,
                        AudioFormat.ENCODING_PCM_16BIT, 48000*7 /* 1 second buffer */,
                        AudioTrack.MODE_STREAM);
                at.write(generatedNoise, 0, generatedNoise.length);
                at.play();      
public short[]generatedNoise=new short[60000];

对于(int i=0;i问题已解决,对于缓冲区大小,我刚刚将其更改为数组的实际大小,效果很好。感谢您的关注。

您等待了多长时间,以查看是否出现问题?60000是大量迭代。也许您应该在循环完成后添加一些日志输出,以确保它实际完成。是的我确实打印了b4 playingHi,我可以问一下你说的“阵列的实际大小”是什么吗?你的“generatedNoise.length”不是实际大小吗?我想“buffer size”是指音轨构造函数的第五个参数。我这样做了,但我仍然无法播放任何声音。
          short[] wave=new short[100000];

          int i=0;
          while(i<=99997){
              wave[i]=32767;
              wave[i+1]=0;
              wave[i+2]=-32767;
              wave[i+3]=0;
              i=i+4;
          }