各路大侠,江湖救急啊!
我想用java播放两个wav文件,比如说是1.wav和2.wav,首先播放1.wav再播放2.wav但是不能将其分开播放
比如不能使用下面的程序:
AudioStream au;
InputStream in1 = new FileInputStream("1.wav");
au = new AudioStream(in1);
AudioPlayer.player.start(au);
InputStream in2 = new FileInputStream("2.wav");
au = new AudioStream(in2);
AudioPlayer.player.start(au);
也就是说不能调用两次的AudioPlayer.player.start();
只允许调用一次AudioPlayer.player.start();
我想问的是如何将两个wav文件都读入inputstream而且在AudioPlayer.player.start(au)的时候可以首先播放1.wav的声音再播放2.wav的声音。谢谢
在线等......
我想用java播放两个wav文件,比如说是1.wav和2.wav,首先播放1.wav再播放2.wav但是不能将其分开播放
比如不能使用下面的程序:
AudioStream au;
InputStream in1 = new FileInputStream("1.wav");
au = new AudioStream(in1);
AudioPlayer.player.start(au);
InputStream in2 = new FileInputStream("2.wav");
au = new AudioStream(in2);
AudioPlayer.player.start(au);
也就是说不能调用两次的AudioPlayer.player.start();
只允许调用一次AudioPlayer.player.start();
我想问的是如何将两个wav文件都读入inputstream而且在AudioPlayer.player.start(au)的时候可以首先播放1.wav的声音再播放2.wav的声音。谢谢
在线等......
解决方案 »
- 实验2:制作某年某月的日历。
- 如何把地理坐标转换成屏幕坐标
- 说说大家去面试java的时候,考官都问了什么问题?
- 高分求解啊,大家帮帮忙啊.
- 请教大家关于 swt Draw2D 方面的实例,比如画直线的,画方块的,画圆的,多边形的,实例代码
- RCP汉化后,无法脱离Eclipse 提示JAR包无法解析
- 小问题>?????
- 编译数据库连接池出错,不知什么原因,请大家帮忙看看,谢谢发,急!!
- 请问现在市场上主流的应用服务器报价分别是多少?
- JDBC里的BLOB怎么用?
- 学习java的30个目标
- List <String > lst = new ArrayList() 与 ArrayList<String> lst = new ... 的区别?
au1 = ew AudioStream(in1);
AudioPlayer.player.start(au);
InputStream in2 = new FileInputStream( "2.wav ");
au2 = new AudioStream(in2);
List<AudioStream> list=new java.util.ArrayList<AudioStream>();;
list.add(a1);
list.add(a2);
for(AudioStream au:list){
AudioPlayer.player.start(au);
}
因为list文件有两个元素
我的意思是说能否将1.wav文件和2.wav文件先合并成一个wav文件,比如说3.wav文件
谢谢ProvidenceZY
怎么没人帮小弟解答?
我主要是想做一个数字播报
比如我输入0205,则播放文件下的0.wav + 2.wav + 0.wav + 5.wav
try {
Process process = Runtime.getRuntime().exec("cmd /c copy 1.wav+2.wav 3.wav"); //调用Ping命令
InputStream in1=new FileInputStream("3.wav");
AudioStream au =new AudioStream(in2);
au.player.start(au);
//结束后也可以将新的wav删除
}catch (Exception e)
{
e.printStackTrace();
}
}
收获不小~~
但是这种方式好像只能在windows系统中
在linux系统好像不行
没有cmd这个命令不知道谁还有其他的办法?谢谢
try {
Process process = Runtime.getRuntime().exec("cp>1.wav+2.wav 3.wav"); //调用cp命令
InputStream in1=new FileInputStream("3.wav");
AudioStream au =new AudioStream(in2);
au.player.start(au);
//结束后也可以将新的wav删除
}catch (Exception e)
{
e.printStackTrace();
}
}
file = new File("XXXX.WAV");
issoundfirst = true; try
{
stream = (AudioInputStream)AudioSystem.
getAudioInputStream(
file);
AudioFormat format = stream.getFormat();
if((format.getEncoding() == AudioFormat.Encoding.ULAW) ||
(format.getEncoding() == AudioFormat.Encoding.ALAW))
{
AudioFormat tmp = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
format.getSampleRate(),
format.getSampleSizeInBits() * 2,
format.getChannels(),
format.getFrameSize() * 2,
format.getFrameRate(),
true);
stream = AudioSystem.getAudioInputStream(tmp,stream);
format = tmp;
}
DataLine.Info info = new DataLine.Info(
Clip.class,
stream.getFormat(),
((int)stream.getFrameLength() *
format.getFrameSize()));
clip = (Clip)AudioSystem.getLine(info);
clip.open(stream);
clip.start();
while(clip.isActive())
{ }
clip.stop();
clip.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}试试这种方式吧!连续的也不难实现。这是只读一个的。
while(clip.isActive())
{ }
部分控制其一定读完。
AudioInputStream stream;
InputStream in1 = new FileInputStream("1.wav");
au = new AudioStream(in1);
AudioPlayer.player.start(au);
thred.seelp(1000);
InputStream in2 = new FileInputStream("2.wav");
au = new AudioStream(in2);
AudioPlayer.player.start(au);
这样就可以分开播放了。