1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 利用JAVA SOUND播放mp3 flac ape格式音乐(附Jar包)

利用JAVA SOUND播放mp3 flac ape格式音乐(附Jar包)

时间:2019-05-08 15:29:56

相关推荐

利用JAVA SOUND播放mp3 flac ape格式音乐(附Jar包)

import javax.sound.sampled.*;import java.io.File;public class AudioFilePlayer {public static void main(String[] args) {final AudioFilePlayer player = new AudioFilePlayer();// player.play("F:\\网易云\\ENA☆ - For you~月の光が降り注ぐテラス.ape");// player.play("F:\\网易云\\“千と千寻の神隠し”~いつも何度でも - 久石譲.mp3");player.play("F:\\网易云\\와 - 李贞贤.flac");}public void play(String filePath) {try {// 文件流AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(filePath));// 文件编码AudioFormat audioFormat = audioInputStream.getFormat();// 转换文件编码if (audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {System.out.println(audioFormat.getEncoding());audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, audioFormat.getSampleRate(), 16, audioFormat.getChannels(), audioFormat.getChannels() * 2, audioFormat.getSampleRate(), false);// 将数据流也转换成指定编码audioInputStream = AudioSystem.getAudioInputStream(audioFormat, audioInputStream);}// 打开输出设备DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat, AudioSystem.NOT_SPECIFIED);// 使数据行得到一个播放设备SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo);// 将数据行用指定的编码打开sourceDataLine.open(audioFormat);// 使数据行得到数据时就开始播放sourceDataLine.start();int bytesPerFrame = audioInputStream.getFormat().getFrameSize();// 将流数据逐渐写入数据行,边写边播int numBytes = 1024 * bytesPerFrame;byte[] audioBytes = new byte[numBytes];while (audioInputStream.read(audioBytes) != -1) {sourceDataLine.write(audioBytes, 0, audioBytes.length);}sourceDataLine.drain();sourceDataLine.stop();sourceDataLine.close();} catch (Exception e) {e.printStackTrace();}}}

代码部分和网上的无异,主要是解码包:

MP3用: tritonus_share,mp3spi1.9.5,jl1.0.1这三个解码包

ape用:jmactritonusspi这个解码包

flac用:jflac-1.3这个解码包,注意,在网上下载的这个包是用不了的,需要修改一下,我已经修改好了,放在了附件里.

下载完后按照图中的格式组织下就好了

我用的是最新版的Intellij IDEA,你们将我发的包导入到Intellij IDEA就可以了.

链接:/s/1S8oguzBC89U50X844zChcA

提取码:q89h

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。