创建音乐盒播放器
来源:互联网 发布:五道口金融博士知乎 编辑:程序博客网 时间:2024/05/20 14:40
<pre name="code" class="java">import javax.sound.midi.*;//使用命令列参数改变乐器和音符public class MiniMusicCmdLine{public static void main(String [] args){MiniMusicCmdLine mini=new MiniMusicCmdLine();if(args.length<2)System.out.println("Don't forget the instrument and note args");else{System.out.println("main start");int instrument=Integer.parseInt(args[0]);int note=Integer.parseInt(args[1]);mini.play(instrument,note);System.out.println("main end");}System.out.println("main end");}public void play(int instrument,int note){try{System.out.println("try start");Sequencer player=MidiSystem.getSequencer();player.open();Sequence seq =new Sequence(Sequence.PPQ,4);Track track=seq.createTrack();MidiEvent event = null;ShortMessage first=new ShortMessage();first.setMessage(192,1,instrument,0);MidiEvent changeInstrument=new MidiEvent(first,1);track.add(changeInstrument);ShortMessage a=new ShortMessage();a.setMessage(144,1,note,100);MidiEvent noteOn=new MidiEvent(a,1);track.add(noteOn);ShortMessage b=new ShortMessage();b.setMessage(128,1,note,100);MidiEvent noteOff=new MidiEvent(b,16);track.add(noteOff);player.setSequence(seq);player.start();System.out.println("try end");}catch(Exception ex){ex.printStackTrace();}}}//e:\java project\head first java\chapter 11\minimusiccmdline
import javax.sound.midi.*;//此程序没有进行风险处理所以出错public class MusicTest1{public void play(){Sequencer sequencer=MidiSystem.getSequencer();//Sequencer的作用是蒋midi的信息组合成乐曲System.out.println("We got a sequencer");}public static void main(){MusicTest1 mt=new MusicTest1();mt.play();}}
import javax.sound.midi.*;//进行风险处理后的程序public class MusicTest1{public void play(){try{Sequencer sequencer=MidiSystem.getSequencer();System.out.println("Successfully got a sequencer");}catch(MidiUnavailableException ex){System.out.println("Brummer");}}public static void main(String [] args){MusicTest1 mt=new MusicTest1();mt.play();}}
public void takeRisk()throws BadException{//throws throw try catch exampleif(abandonAllHope)throw new BadException();}public void crossFingers(){try{anObject.takeRisk();}catch(BadException ex){System.out.println("Aaargh!");ex.printStackTrace();}}
public class TestExceptions//test exceptions{public static void main(String [] args){String test="no";try{System.out.println("start try");doRisky(test);System.out.println("end try");}catch(ScaryException se){System.out.println("Scary exception");}finally{System.out.println("finally");}System.out.println("end of main");}static void doRisky(String test)throws ScaryException{System.out.println("start risky");if("yes".equals(test)){throw new ScaryException();}System.out.println("end risky");return;}}
public class Washer//ducking exceptions{Laundry laundry=new Laundry();public void foo()throws ClothingException{laundry.doLaundry();}public static void main(String [] args)throws ClothingException{Washer a=new Washer();a.foo();}}
import javax.sound.midi.*;//first 音乐盒public class MiniMiniMusicApp{public static void main(String [] args)//在main中若class 中实例变量或者函数声明为static则在main中不需要声明一个对象就可以直接用,否则则需要声明一个对象再调用函数或者实例变量{MiniMiniMusicApp mini =new MiniMiniMusicApp();mini.play();}public void play(){//取得Sequencer并将它打开try{Sequencer player =MidiSystem.getSequencer();player.open();Sequence seq=new Sequence(Sequence.PPQ,4);Track track=seq.createTrack();//取得track//对track加入几个MidiEvent,注意setMessage()的参数以及MidiEvent的constructorShortMessage a=new ShortMessage();a.setMessage(141,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);player.start();}catch(Exception ex){ex.printStackTrace();}}}
import javax.sound.midi.*;//使用命令列参数改变乐器和音符public class MiniMusicCmdLine{public static void main(String [] args){MiniMusicCmdLine mini=new MiniMusicCmdLine();if(args.length<2)System.out.println("Don't forget the instrument and note args");else{int instrument=Integer.parseInt(args[0]);int note=Integer.parseInt(args[1]);mini.play(instrument,note);}}public void play(int instrument,int note){try{Sequencer player=MidiSystem.getSequencer();player.open();Sequence seq =new Sequence(Sequence.PPQ,4);Track track=seq.createTrack();MidiEvent event = null;ShortMessage first=new ShortMessage();first.setMessage(192,1,instrument,0);MidiEvent changeInstrument=new MidiEvent(first,1);track.add(changeInstrument);ShortMessage a=new ShortMessage();a.setMessage(144,1,note,100);MidiEvent noteOn=new MidiEvent(a,1);track.add(noteOn);ShortMessage b=new ShortMessage();b.setMessage(128,1,note,100);MidiEvent noteOff=new MidiEvent(b,16);track.add(noteOff);player.setSequence(seq);player.start();}catch(Exception ex){ex.printStackTrace();}}}
0 0
- 创建音乐盒播放器
- 百度音乐盒播放器
- 使用百度音乐盒API接口实现音乐播放器
- 秀杰音乐盒之mtv播放器 v1.0 怎么用
- iOS一个模仿百度音乐盒的音乐播放器(带EQ均衡器)
- Symbian 创建播放器界面
- 创建Music播放器demo
- C#中创建播放器
- pygame “音乐盒”---- 播放一首歌& 点击对话框后背景以及对话框大小改变
- 安卓1111_多媒体 加载大图 画板 撕衣服 动画 音乐盒 视频播放
- 数字音乐盒
- 个音乐盒
- 网页音乐盒
- 创建一个全功能的FLV播放器
- 如何创建一个Linux音频播放器
- 使用aRts创建音频播放器
- OpenCV创建的视频播放器
- OpencCV创建专属的视频播放器
- hihoCoder_#1062_最近公共祖先·一
- 卡特兰数
- [LeetCode][Java] Clone Graph
- C中CONST的使用
- LeetCode—数组(3)
- 创建音乐盒播放器
- pthread 线程库编程 一:线程与互斥锁 mutex_lock
- [UIApplication sharedApplication].keyWindow 添加视图无效,解决方案。
- 字符串的最长公共子序列问题
- 软件工程—思考项目开发那些事(一)
- cout<<endl 本质解析
- C语言编程入门——程序练习(下)
- 数据库优化 in 软件生命周期的不同阶段
- C语言深度解剖——读书笔记-3、关键字(const、 volatile、extern、struct、union、enum、typedef)