Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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 我如何制作这个声音循环?_Java_Audio_Javasound_Stack Overflow - Fatal编程技术网

Java 我如何制作这个声音循环?

Java 我如何制作这个声音循环?,java,audio,javasound,stack-overflow,Java,Audio,Javasound,Stack Overflow,我试图在这个代码中循环声音。在主try and catch的最后一个块中,我执行以下操作: if (loop) { auline.flush(); run(); } else { ended=true; auline.drain(); auline.close(); } 但它会导致堆栈溢出。如何在不创建新实例的情况下安全地循环此声音?您正在从run中调用run,这将最终填充调用堆栈并导致堆栈

我试图在这个代码中循环声音。在主try and catch的最后一个块中,我执行以下操作:

    if (loop) {
        auline.flush();
        run();
    } else {
        ended=true;
        auline.drain();
        auline.close();
    }

但它会导致堆栈溢出。如何在不创建新实例的情况下安全地循环此声音?

您正在从
run
中调用
run
,这将最终填充调用堆栈并导致堆栈溢出异常

现在的问题是,你如何克服它

您需要在run方法中循环。我能想到的最好的方法是在run方法中有一个“exit”触发器

public void run() {
    while(loop) {
        //...play sound
    }
}

您可以使用
stop
方法也触发从
run
中调用
run
循环
标志

,这将最终填满调用堆栈并导致堆栈溢出异常

现在的问题是,你如何克服它

您需要在run方法中循环。我能想到的最好的方法是在run方法中有一个“exit”触发器

public void run() {
    while(loop) {
        //...play sound
    }
}
您还可以使用
stop
方法触发
循环
标志

另请参见中所示。另请参见中所示。