`
simpledev
  • 浏览: 196195 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java编码音乐播放器简化版

    博客分类:
  • Java
阅读更多
import java.io.File;
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;

/**
 * @author hjl
 * @date 2008-8-1
 * @function 简化实现音乐播放功能
 * @version 1.0
 */
public class MusicPlay {

	public static void main(String[] args) {
		AudioInputStream m_audioInputStream = null;
		SourceDataLine m_line = null;
		AudioFormat audioFormat = null;
		try {
			File file = new File("D:\\music070924\\雨一直下.mp3");
			m_audioInputStream = AudioSystem.getAudioInputStream(file);
			audioFormat = m_audioInputStream.getFormat();
			
			if (audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
				AudioFormat newFormat = new AudioFormat(
						AudioFormat.Encoding.PCM_SIGNED, audioFormat
								.getSampleRate(), 16, audioFormat.getChannels(),
						audioFormat.getChannels() * 2, audioFormat.getSampleRate(),
						false);
				System.out.println("Converting audio format to " + newFormat);
				AudioInputStream newStream = AudioSystem.getAudioInputStream(
						newFormat, m_audioInputStream);
				audioFormat = newFormat;
				m_audioInputStream = newStream;
			}
			
			DataLine.Info info = new DataLine.Info(SourceDataLine.class,audioFormat);
			m_line = (SourceDataLine) AudioSystem.getLine(info);
			m_line.open(audioFormat, m_line.getBufferSize());
			m_line.start();
			
			int bufferSize = (int) audioFormat.getSampleRate() * audioFormat.getFrameSize();
			byte[] buffer = new byte[bufferSize];

			int bytesRead = 0;
			while (bytesRead >= 0) {
				bytesRead = m_audioInputStream.read(buffer, 0, buffer.length);
				if (bytesRead >= 0) {
					m_line.write(buffer, 0, bytesRead);
				}
			} 
			m_line.drain();
			m_line.close();
		
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 异常:
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
 at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1170)
 at com.simpledev.music.sample.MusicPlay.main(MusicPlay.java:27)
缺少jl1.0.jar,tritonus_share.jar,mp3spi1.9.4.jar,见lib.rar

  • lib.rar (203.7 KB)
  • 下载次数: 318
分享到:
评论
3 楼 xfxlch 2012-09-22  
2 楼 sunli0201 2012-08-29  
感谢楼主 !!!
1 楼 sasuke38 2011-11-18  
效果非常的好 请问楼主有没有相关的api呢 

相关推荐

    毕业设计—Java网络音乐播放器客户端.zip

    【Java网络音乐播放器客户端】是一个典型的毕业设计项目,它基于Java编程语言,旨在实现一个能够在线播放音乐的客户端应用程序。这个项目展示了开发者对Java基础知识的掌握,以及在网络通信、多媒体处理等方面的技能...

    Java编码规范精简版本.doc

    ### Java编码规范精简版本知识点解析 #### 一、为何制定编码规范? 1. **维护成本**: 软件在其整个生命周期中,大约80%的成本都集中在维护阶段。因此,良好的编码规范能够显著降低这部分成本。 2. **人员变动**: ...

    阿里巴巴 Java 编码指南,Alibaba Java Coding Guidelines​,兼容 Idea 2023.3+

    《阿里巴巴 Java 编码指南》是业界广泛采用的编码规范,旨在提高代码质量和开发效率,尤其对于使用 IntelliJ IDEA 的开发者来说,此指南的兼容性更新至 2023.3+ 版本,确保了最新的开发环境支持。这份指南在 2024 年...

    基于Java音乐播放器微信小程序源码数据库文档.zip

    它采用了Spring Boot框架,这是一个基于Spring框架的高度简化版,旨在简化初始设置和配置,使开发者能更快地专注于应用开发。 "SpringBoot"是Spring生态系统的组成部分,它内置了Tomcat服务器,自动配置了许多...

    牛逼的视频播放器和好看的音乐播放器

    总结起来,创建“牛逼的视频播放器和好看的音乐播放器”涵盖了多媒体编码、Web服务器部署、前端框架应用、HTML5多媒体API、响应式设计、性能优化等多个IT领域的知识点。通过这些技术的综合运用,可以实现功能丰富、...

    JAVA 版MPEG播放器.zip_MPEG_mpeg 播放器

    而JAVA版MPEG播放器是专为Java平台设计的软件,能够解析并播放MPEG格式的视频文件。 在Java中实现MPEG播放器涉及到许多关键知识点,包括但不限于以下几点: 1. **多媒体框架**:Java提供了Java Media Framework ...

    Java编码规范2008版.pdf

    Java编码规范是指导Java程序员编写代码的重要参考文档,旨在保证编码风格的一致性,提高代码的可读性和可维护性。本文档详细阐述了Java编码的相关规范和要求,并提供了一系列编码案例作为参考,它适用于华信邮电咨询...

    安卓音乐播放器相关-基于SDLFFmpeg的android播放器源码.zip

    在Android平台上开发音乐播放器,开发者常常会遇到各种挑战,如音频解码、音轨切换、音效控制等。这个压缩包"安卓音乐播放器相关-基于SDLFFmpeg的android播放器源码.zip"提供了一个基于SDL(Simple DirectMedia ...

    MeyboMail Web(Java)开源简化版.zip

    《MeyboMail Web(Java)开源简化版详解》 MeyboMail Web(Java)开源简化版是一款基于Java技术构建的Web邮件系统,专为毕业设计和程序设计学习者提供了一个实践平台。该系统的核心目标是实现一个功能完善的邮件服务,...

    Java编码规范.doc_java_doc_

    《Java编码规范详解》 在Java编程领域,代码规范是一种重要的约定,它旨在提升团队协作效率,确保代码的可读性、可维护性和一致性。Java编码规范是开发人员遵循的一套指导原则,它涵盖了命名规则、注释标准、类与...

    java对音乐文件的jar包

    Java对音乐文件的处理在许多应用中都是必不可少的,例如...总的来说,这个Java音乐文件处理jar包为开发者提供了全面的MP3处理工具,简化了在Java环境中处理音频的复杂性,使得开发者可以专注于构建功能丰富的音乐应用。

    MeyboMail Web(Java)开源简化版.rar

    "MeyboMail Web(Java)开源简化版.rar"是一个针对Java开发者的学习资源,它提供了一个基于Web的邮件服务实现,适合初学者和有一定经验的开发者探索Java Web开发和电子邮件处理技术。这个开源项目可能包含了服务器端...

    JAVA开发编码规范

    Java开发编码规范是确保代码可读性、可维护性和团队协作效率的重要指导原则。这份规范由武汉捷讯技术有限公司制定,适用于使用Java语言开发的项目,旨在统一编码风格,提高代码质量。 规范的适用范围包括项目的编码...

    java-media.rar_Java 播放器_java media

    以下是一个简化的 Java 播放器的构建过程: 1. **初始化 JMF**:在程序启动时,需要调用 `System.loadLibrary("jmfreg")` 来加载 JMF 注册库,确保系统可以识别 JMF 组件。 2. **创建 Player**:通过 `Manager....

    相当完善的Java编码规范

    Java编码规范是一套用于指导Java开发者编写清晰、可读、可维护代码的准则。这份规范详细规定了从文件命名、代码组织、缩进排版、注释格式、声明方式、语句结构、空白使用、命名规则、编程习惯到代码示例和日志规范等...

    Java编码规范【简易版】.pdf

    总的来说,这个简易版的Java编码规范提供了一个清晰的框架,帮助开发者遵循最佳实践,从而写出高质量、易于维护的代码。遵循这些规则,可以显著提升代码的可读性和团队合作效率,降低维护成本。

    Java 注释编码

    Java 注释编码的知识点涵盖了Java注解(Annotations)的基本概念、语法、使用场景以及与Java SE 8的变化。注解是Java SE 5引入的一个特性,用于为Java代码提供元数据。这些元数据可以被编译器读取,也可以用于运行时...

    音乐播放器

    4. 编程语言与框架:音乐播放器的开发可能涉及多种编程语言,如C++、Java、Swift、Python或JavaScript。开发者可能选择使用桌面应用框架(如Qt、wxWidgets或Electron)来简化跨平台开发。对于移动平台,可能会使用...

    java 解析ASN.1 编码格式cdr话单文件例子

    本话题主要关注如何使用Java解析ASN.1编码格式的CDR(Call Detail Record)话单文件。 CDR是通信系统中记录通话、短信等通信活动详细信息的数据文件,包含诸如呼叫时间、时长、主叫号码、被叫号码、通话状态等多种...

Global site tag (gtag.js) - Google Analytics