帮一个小妹写一个播放mp3的代码,对于java不熟的我来说可真折腾。
网上好多代码都是用jmf的,需要单独安装,除了jar包,还依赖很多dll文件。
找了又找,终于找到一个只依赖jar包的;
原帖地址:http://blog.csdn.net/liuzhongbing/article/details/4535402
依赖的jar包见附件。
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
public class Test {
public static void main(String[] args) throws Exception, IOException {
AudioInputStream audioInputStream;// 文件流
AudioFormat audioFormat;// 文件格式
SourceDataLine sourceDataLine;// 输出设备
File file = new File("E:/5.mp3");
// 取得文件输入流
audioInputStream = AudioSystem.getAudioInputStream(file);
audioFormat = audioInputStream.getFormat();
// 转换mp3文件编码
if (audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
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) AudioSystem.getLine(dataLineInfo);
sourceDataLine.open(audioFormat);
sourceDataLine.start();
byte tempBuffer[] = new byte[320];
try {
int cnt;
// 读取数据到缓存数据
while ((cnt = audioInputStream.read(tempBuffer, 0,
tempBuffer.length)) != -1) {
if (cnt > 0) {
// 写入缓存数据
sourceDataLine.write(tempBuffer, 0, cnt);
}
}
// Block等待临时数据被输出为空
sourceDataLine.drain();
sourceDataLine.close();
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
}
}
}
分享到:
相关推荐
总的来说,Java的JMF包和MP3播放插件为开发者提供了在Java环境中播放MP3音频的能力,尽管随着技术的发展,可能有更先进的解决方案出现,但了解这些基础知识仍然对理解多媒体处理在Java中的应用具有重要意义。
本文将详细讨论如何在不依赖Java Media Framework (JMF)的情况下实现Midi和MP3文件的播放。JMF虽然提供了丰富的媒体处理能力,但它的安装和配置过程相对复杂,且在某些现代系统上可能不再兼容。 首先,我们要了解...
Java MP3播放器是利用Java Media Framework (JMF) API来实现的一种软件工具,它允许开发者在Java应用程序中集成音频播放功能,特别是针对MP3格式的音频文件。JMF是Sun Microsystems开发的一个开源框架,主要用于处理...
以前做项目用到java播放mp3文件,从官网下载了支持mp3 的spi 。 还有一个播放mp3的实例,绝对能用。 抛开JMF java一样很好很强大. 有一个java开源项目 做的mp3播放器源码,java播放器YOYOPlayer下次上传
JMF播放MP3简单例子,Eclipse项目,免安装JMF,但是要将JMF安装时产生的20个dll文件拷贝在jre\bin下面才能正常运行。 关于20个dll的详情,可以下载我的JMF版音乐播放器,里面有文档说明: ...
【基于JMF的MP3播放器】是一款利用Java Media Framework(JMF)技术开发的音频播放软件,专注于播放MP3格式的音乐文件。这个播放器不仅具备基础的播放功能,如播放、暂停、停止和音量控制,还支持列表播放,用户可以...
Java 实现的 MP3(JMF)是一种利用Java Media Framework(JMF)来处理和播放MP3音频文件的技术。JMF是Sun Microsystems开发的一个开源框架,它为Java应用程序提供了处理多媒体(音频、视频)的能力。在Java中实现MP3...
JMF默认支持多种媒体格式,如MP3、WAV、MIDI、QuickTime、AVI等,但对一些现代格式(如MP4、H.264)的支持可能不足,需要通过第三方插件扩展。 5. **局限性与替代方案**: 虽然JMF在早期Java多媒体应用中发挥了...
在“java的JMF播放音乐示例”中,我们看到一个应用,该应用能够搜索E盘中的所有MP3文件并提供播放功能。这个示例对于初学者来说是一个很好的起点,它展示了如何利用JMF来处理音频文件。 首先,我们需要理解JMF的...
Java MP3解码器是一种允许开发者在Java应用程序中播放MP3音乐文件的工具,尤其适合那些不希望依赖Java Media Framework (JMF)的项目。JMF虽然提供了多媒体处理能力,但有时可能过于庞大或者不易配置,因此这个非JMF...
它支持多种媒体格式,如MP3、WAV等,并且能够与其他Java API集成,方便地在Java程序中嵌入多媒体播放功能。 2. **音乐播放** 使用JMF,开发者可以通过`javax.media.Manager`类加载和播放音乐文件。首先,需要创建...
1. **多媒体播放**:JMF支持多种媒体格式,如MP3、WAV、AVI、MP4等。通过JMF,开发者可以轻松地在Java程序中播放这些格式的音频和视频文件。 2. **流处理**:JMF能够处理实时的网络流媒体,如在线音频和视频流,使...
Java Media Framework (JMF) 是Java平台上用于处理多媒体数据的一个框架,它允许开发者创建和播放音频、视频等各种媒体内容。JMF 提供了一个统一的接口,使得开发者无需深入理解底层的多媒体编码和解码机制,就能...
总的来说,"jmf_mp3_plugin"是Java应用程序处理MP3音频的核心组件,它弥补了JMF在MP3支持上的不足,使得开发者能够在Java平台上流畅地处理和播放MP3音频文件。理解其工作原理和使用方法对于开发涉及多媒体处理的Java...
本项目是基于JMF构建的一个简单但功能完备的MP3播放器,同时也包含了基本的视频播放功能。这个软件包的焦点在于理解和实现多媒体数据处理的Java编程技术。 首先,我们来深入理解JMF。JMF允许开发者处理多种媒体格式...
Java音乐播放器是一款基于Java语言开发的音频播放软件,它依赖于Java Media Framework (JMF) 来处理和播放音频文件。JMF是Java平台上的一个开源多媒体框架,用于处理和播放音频、视频等多媒体数据。在使用这个音乐...
JMF是一个可扩展的框架,它支持多种媒体格式,包括但不限于MP3、WAV、AIFF等音频文件。通过JMF,我们可以播放、暂停、停止、快进、倒带以及控制音量等操作。JMF的工作原理是通过注册服务提供商接口(SPI)来发现和...
Java MP3播放插件是一种专为Java平台设计的软件组件,它允许开发者通过Java编程语言创建功能丰富的音乐播放器应用程序。这款插件扩展了Java Media Framework (JMF) 的功能,使得开发者不仅可以处理常见的音频格式如...