一个简单音乐播放器的java实现(一)
写在前面
这几天正在读head first系列的书籍,现在正好读的是java。这本书讲的深入浅出,环环相扣,非常精彩,不妨安利给大家,顺便把我学习过程中的一些心得体会已经实例分享出来。
1.一个最简单音乐播放器的需求
我们需要四样东西:
(1)播放器–Sequencer(实际上播放音乐的控件,可将其想象为一个CD player);
(2)被播放的音乐–Sequence(想象它是一张CD,但是在我们的程序里它只包含一首歌曲);
(3)音乐存储的信息–Track(Sequence中用来存储音乐信息的那一部分)
(4)实际的音乐信息–MidiEvent(包含播放时长,播放记录等)
2.一个最简单音乐播放器的五步骤实现
(1)创造一个Sequencer并打开:
Sequencer player = MidiSystem.getSequencer();
player.open();
(2)创造一个新的Sequence:
Sequence seq = new Sequence(timing, 4);
(3)在这个Sequence中得到一个新Track:
Track track = seq.createTrack();
(4)用MidiEvents来填充Track并将该Sequence放入到Sequencer中:
track.add(myMidiEvent1);
player.setSequence(seq);
(5)开始播放:
player.start();
3.其他需要考虑的要素
(1)需导入专门的包——javax.soud.midi.*
(2)异常处理 try–catch
注:可能存在异常错误MidiUnavailableException,必须捕获或声明以便抛出
4.实例代码
import javax.sound.midi.*; // The midi package is necessarypublic class MiniMusicApp {public static void main(String[] args) {MiniMusicApp mini = new MiniMusicApp();mini.play();}public void play() {try {// Get a sequencer and open itSequencer player = MidiSystem.getSequencer();player.open();Sequence seq = new Sequence(Sequence.PPQ, 4); //Treat the arguments as Ready-bake argumentsTrack track = seq.createTrack(); // Ask the sequence for a track// Put some MidiEvents into the Track, the setMessage() method is what we should really careShortMessage a = new ShortMessage();a.setMessage(144, 1, 44, 100);MidiEvent noteOn = new MidiEvent(a, 1);track.add(noteOn);ShortMessage b = new ShortMessage();b.setMessage(128, 1, 44, 100);MidiEvent noteOff = new MidiEvent(b, 16);track.add(noteOff); player.setSequence(seq); // Give the sequence to the Sequencer// like pushing a CD to a CD playerplayer.start(); // Start the sequencer like pushing PLAY}catch(Exception ex) {ex.printStackTrace();}} // Close play
} // Close class
至此,一个最最简单的音乐播放器就完成了。当然,因为用的是非常简单的MidiEvent,所以运行程序大家只能听到一个四秒钟左右的叮——声。
后续还会继续对音乐播放器进行完善,大家可以阅读后文,或者直接移步参阅书籍 Head First Java 中的第十一章到十四章。
一个简单音乐播放器的java实现(一)相关推荐
- java计算机毕业设计vue开发一个简单音乐播放器(附源码、数据库)
java计算机毕业设计vue开发一个简单音乐播放器(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ec ...
- java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 本源码技 ...
- java计算机毕业设计vue开发一个简单音乐播放器MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计vue开发一个简单音乐播放器MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计vue开发一个简单音乐播放器MyBatis+系统+LW文档+源码+调试部署 本源 ...
- JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库
JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目 ...
- 计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档)
计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档) 计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...
- 基于JAVAvue开发一个简单音乐播放器计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVAvue开发一个简单音乐播放器计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVAvue开发一个简单音乐播放器计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目 ...
- php实现音乐播放器功能,实现一个简单音乐播放器
做的一个简单的半成品播放器 一.需求分析 1.写静态页面 2.通过getMusicList函数用Ajax获取歌曲数据列表musiclist 3.通过loadMusic函数实现歌曲的播放功能 4.根据获 ...
- C/C++简单音乐播放器系统
C/C++简单音乐播放器系统 程序设计题 1:简单音乐播放器系统 出题人:吴敏 面向专业:计算机科学与技术 难度等级:4 1 问题描述 编写一个简单音乐播放器软件,实现歌单文件的浏览,点歌,加入收藏夹 ...
- 简单音乐播放器的设计与实现
简单音乐播放器的设计与实现 本文将介绍如何在Andriod Studio设计制作一个简单音乐播放器 功能说明 第二次安卓开发,所以要求相对上次而言难度稍微加大了一点.该程序实现的主要功能有上一曲, ...
最新文章
- MFC中显示 .bmp格式的位图
- 【Python学习】使用Pyinstaller将py文件导出为exe文件
- mybaits三:全局配置文件(全面)
- Python 技术篇 - 微信调用图灵机器人的api接口实现自动回复实例演示。图灵机器人的注册与使用
- 如何做Teams Bot的测试覆盖
- Jirasearch 2.0狗粮:使用Lucene查找我们的Jira问题
- 2017.10.10 狼和羊的故事 思考记录
- Qt Creator怎样更改默认构建目录
- 阿里云Link Security为企业级区块链提供易用性安全解决方案
- [UE]EpicGames Launcher 添加/识别本地已有编辑器版本
- maya镜头批渲染插件 v1.0.8 更新下载及教程
- python 自动化发送邮件_Python自动化必备发送邮件报告脚本详解
- 2019 HZNU Winter Training Day 15 Comprehensive Training
- 【英语】maintext2-Emotional Mastery译文
- css3实现的僵尸走路动画
- html四舍五入函数,Javascript四舍五入(Math.round()与Math.pow())
- 二维数组 string[,]
- MySQL中的describe关键字
- 理解用户模式和内核模式(译)
- Xxe漏洞 php,PhpSpreadsheet 1.5.0 XXE漏洞复现及分析