最后编辑-两个简单的答案需要。
1)我能够让代码使用URL (这是下面一个响应中的代码)。但我的歌在wav文件里。当我尝试执行File url = new (“-”)时,它不起作用。
相反,在堆栈跟踪(谢谢您的提示!),它说
"Failed to allocate clip data: Requested buffer too large"
我想播放的歌曲是高科技的,大约3分钟长。
如何解决剪辑数据大小问题?
发布于 2010-09-24 09:23:29
看看用于采样声音的Java声音API的类。特别是剪辑接口和AudioSystem类。
Java使用SPI将对额外格式的支持添加到内置到J2SE的默认格式中。您可以添加基于JMF的mp3plugin.jar,以向JavaSound提供对MP3s的支持。
要在循环中播放WAV,请参见下面的小示例。
import java.net.URL;
import javax.sound.sampled.*;
public class LoopSound {
public static void main(String[] args) throws Exception {
URL url = new URL(
"http://pscode.org/media/leftright.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.
getAudioInputStream( url );
clip.open(ais);
clip.loop(5);
javax.swing.JOptionPane.showMessageDialog(null, "Close to exit!");
}
} 发布于 2012-03-16 21:48:10
查看本教程,它将展示如何实现您自己的读取提要播放循环,并避免内存错误:
http://codeidol.com/java/swing/Audio/Play-Non-Trivial-Audio/
https://stackoverflow.com/questions/3785652
复制相似问题