Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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 7更新25:动态音频不再在本地小程序中工作。有别的方法吗?_Java_Audio_Applet_Local_Clip - Fatal编程技术网

Java 7更新25:动态音频不再在本地小程序中工作。有别的方法吗?

Java 7更新25:动态音频不再在本地小程序中工作。有别的方法吗?,java,audio,applet,local,clip,Java,Audio,Applet,Local,Clip,我一直在通过循环剪辑来生成动态音频 并动态更新其缓冲区 随着java update 7 25(2013年6月18日)的发布,该剪辑不再播放 对其缓冲区所做的更改,但仅循环其原始内容。 在下面的剪辑中,如果test==0,则播放白噪声,但如果test==0,则不播放白噪声 测试==1。它过去总是双向播放噪音,而且在运行时仍然如此 作为控制台应用程序而不是本地小程序 我真的需要在剪辑打开后更新缓冲区:几个 一些软件突然沉默了。还有别的(或正确的)吗 怎么做?提前谢谢 AudioFormat.

我一直在通过循环剪辑来生成动态音频 并动态更新其缓冲区

随着java update 7 25(2013年6月18日)的发布,该剪辑不再播放 对其缓冲区所做的更改,但仅循环其原始内容。 在下面的剪辑中,如果test==0,则播放白噪声,但如果test==0,则不播放白噪声 测试==1。它过去总是双向播放噪音,而且在运行时仍然如此 作为控制台应用程序而不是本地小程序

我真的需要在剪辑打开后更新缓冲区:几个 一些软件突然沉默了。还有别的(或正确的)吗 怎么做?提前谢谢

    AudioFormat.Encoding enc = new AudioFormat.Encoding("PCM_SIGNED");

    AudioFormat frmt = new AudioFormat(enc, 22050, 16, 2, 4, 22050, false);

    DataLine.Info info = new DataLine.Info(Clip.class, frmt);

    Clip loop_clip;

    int size = 8192;

    byte[] sound_buf = new byte[size];

    for (int i = 0; i < size; i++)
        sound_buf[i] = 0;

    int test = 1;

    if (test == 0)
        for (int i = 0; i < size; i++)
            sound_buf[i] = (byte) (Math.random() * 256);

    try {
        loop_clip = (Clip) AudioSystem.getLine(info);

        loop_clip.open(frmt, sound_buf, 0, size);

    } catch (LineUnavailableException e) {
        e.printStackTrace();
        return;
    }

    if (test == 1)
        for (int i = 0; i < size; i++)
            sound_buf[i] = (byte) (Math.random() * 256);

    loop_clip.setLoopPoints(0, -1);

    loop_clip.loop(999);
AudioFormat.Encoding enc=新的AudioFormat.Encoding(“PCM_SIGNED”);
AudioFormat frmt=新的AudioFormat(enc,22050,16,2,4,22050,false);
DataLine.Info=newdataline.Info(Clip.class,frmt);
夹环(u夹),;
int size=8192;
byte[]sound_buf=新字节[大小];
对于(int i=0;i
打开剪辑后,我没有找到让剪辑缓冲区可访问的解决方案,但我使用SourceDataLine和feed缓冲区模拟了一个剪辑。它肯定更占用CPU,但至少可以在本地小程序中进行测试。

这是第二个问题,所以我在过去几个小时里看到了u25的多媒体问题:/What OS?to@fge:Win 7 32 Bit要更快地获得更好的帮助,请发布一篇文章。