为啥这种方法不起作用?

Posted

技术标签:

【中文标题】为啥这种方法不起作用?【英文标题】:Why does this method not work?为什么这种方法不起作用? 【发布时间】:2011-05-10 16:40:32 【问题描述】:
public AudioInputStream append(AudioInputStream main, AudioInputStream s) throws UnsupportedAudioFileException, IOException 
    Audiosystem.write(new AudioInputStream(
             new SequenceInputStream(main, s),     
             main.getFormat(), 
             main.getFrameLength() + s.getFrameLength()), AudioFileFormat.Type.WAVE, new File("/home/nikkka/Desktop/alphabet/result_for_watch.wav"));
    return AudioSystem.getAudioInputStream(new File("/home/nikkka/Desktop/alphabet/result_for_watch.wav"));

它应该附加音频文件,但它总是返回最后一个文件,而不是两个!...有什么问题? :S

【问题讨论】:

“返回最后一个文件”是什么意思? 【参考方案1】:

我能看到这只返回第二个(s)AudioInputStream 的唯一方法是,如果在第一个中读取有问题。 我建议将您的方法分解一些。在这里,我扩展了一些方法,以便添加一些日志语句并使其更加详细。我没有改变任何功能。

public AudioInputStream append(AudioInputStream main, AudioInputStream s)
            throws UnsupportedAudioFileException, IOException 

        SequenceInputStream sis = new SequenceInputStream(main, s);

        long length = main.getFrameLength() + s.getFrameLength();
        logger.debug(main.getFrameLength() + "+" + s.getFrameLength() + 
                    "=" + length);

        AudioFormat fmt = main.getFormat();

        File file = new File("c:/MyNew.wav"); //changed for testing

        AudioInputStream ais = new AudioInputStream(sis, fmt, length);
        int size = AudioSystem.write( ais, AudioFileFormat.Type.WAVE, file);
        logger.debug("Wrote :" + size);

        return AudioSystem.getAudioInputStream(file);
    

另外,确保您正在捕获并记录您的错误,以防万一发生错误。在我的测试用例中,一切正常。检查添加的日志语句,该语句显示文件前后的大小,并确保写入的内容 >= 该值。

使方法更详细有助于定位问题。有了它,像这样更详细,您也可以更轻松地使用调试器。一旦找到问题的根源,如果您愿意,您可以恢复到更紧凑的方式。

【讨论】:

什么不起作用?有错误吗?你能告诉我你的输出中显示了什么吗? 从我上面的代码中,我添加了记录器语句。你从中看到了什么? 你应该看到类似:20191+13921=34112 Wrote :136492

以上是关于为啥这种方法不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这种 javascript 注入攻击不起作用? [复制]

为啥 UICollectionView didSelect 方法不起作用?

为啥这个 if 语句在这种情况下不起作用? [关闭]

为啥 selectAnnotation 在这种情况下不起作用?

为啥 DISTINCT 在这种情况下不起作用? (SQL)

为啥在这种情况下转换属性不起作用? [复制]