用Java代码能播放音频文件吗?可以实现 , 参考如下代码:
package com.lolo;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.DataLine;
public class PlayMusic {
//程序退出时执行的代码
public void doShutDownWork() {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
//Toolkit.getDefaultToolkit().beep();
Play();
Play();
} catch (Exception ex) {
}
}
});
}
//播放音频文件
public void Play(){
String fileurl = "file/tada.wav";
try{
AudioInputStream ais = AudioSystem.getAudioInputStream(new File(fileurl));
AudioFormat aif = ais.getFormat();
SourceDataLine sdl = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class,aif);
sdl = (SourceDataLine)AudioSystem.getLine(info);
sdl.open(aif);
sdl.start();
//play
int nByte = 0;
byte[] buffer = new byte[128];
while(nByte != -1){
nByte = ais.read(buffer,0,128);
if(nByte = 0){
int oByte = sdl.write(buffer, 0, nByte);
//System.out.println(oByte);
}
}
sdl.stop();
}catch(UnsupportedAudioFileException e){
e.printStackTrace();
} catch (IOException e) {
// TODO 自动产生 catch 区块
e.printStackTrace();
} catch (LineUnavailableException e) {
// TODO 自动产生 catch 区块
e.printStackTrace();
}
}
}
java 播放音频 没有声音这句话是错的!AudioClip clip=new AudioClip();
AudioClip 是接口是不能new 。应为AudioClip clip=null;
AudioClip 好像只能支持.au格式的!
调试中,getAudioClip返回的AppletAudioClip对象中 , AudioClip 属性为空 , 所以这里根本无法播放 。
建议到sun公司下载JMF包,它支持多媒体 。
如何在java应用程序中播放音频文件在 applet 中播放声音文件非常简单 , 一般需要以下步骤:创建一个 AudioClip 对象
装入 .au 声音文件到 AudioClip 对象
一次播放或者不停循环播放声音
停止播放
下面是相应的代码:import java.applet.*;AudioClip ac = getAudioClip(getCodeBase(), soundFile);
ac.play(); //play once
ac.stop(); //stop playing
解决这个问题的窍门是利用由 Sun 及 其JDK 提供的某些 undocumented 的特征 。先看看 Sun JDK 中的文件 classes.zip (使用任何解压工具即可) , 发现其中不仅包含标准的 Java 包如 java.applet 而且还存在包 sun.audio. (在 sun/audio 的目录下.)
包 sun.audio 中包含了用于播放声音文件所需的所有东西!下面是示例代码:import sun.audio.*; //import the sun.audio package
import java.io.*;//** add this into your application code as appropriate// Open an input stream to the audio file.
InputStream in = new FileInputStream(Filename);// Create an AudioStream object from the input stream.
AudioStream as = new AudioStream(in);// Use the static class member "player" from class AudioPlayer to play
// clip.
AudioPlayer.player.start(as);// Similarly, to stop the audio.
AudioPlayer.player.stop(as);如果要用一个 URL 做为声音流的源(source),则用下面的代码所示替换输入流来创建声音流:AudioStream as = new AudioStream (url.openStream());如果需要持续播放声音文件,则要稍稍复杂一点:// Create audio stream as discussed previously.
// Create AudioData source.
AudioData data = https://www.04ip.com/post/as.getData();// Create ContinuousAudioDataStream.
ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);// Play audio.
【java音频处理源代码 java音频处理源代码怎么用】java音频处理源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java音频处理源代码怎么用、java音频处理源代码的信息别忘了在本站进行查找喔 。
推荐阅读
- 什么是新款cpu,什么是新款的
- 智能锁如何推广销售,智能锁推广渠道
- 格斗世界游戏在哪下载最好,格斗世界app官方下载
- 怎么判断移动u盘扩展,u盘怎么查看是不是扩容盘
- vb.netusb调试的简单介绍
- cpu的pdf全称是什么,pdf处理器是什么意思
- 工业套料软件如何推广,工业套料软件如何推广销售
- 装台电脑装什么配置好,装台电脑一般需要多少钱
- python列表滤波函数 python opencv 滤波