📄 midirenderer.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
package com.golden.gamedev.engine.audio;
import com.golden.gamedev.engine.BaseAudioRenderer;
import java.net.URL;
import javax.sound.midi.*;
public class MidiRenderer extends BaseAudioRenderer
implements MetaEventListener
{
private Sequencer a;
private static boolean b;
private static boolean c;
private static int d = 0;
public MidiRenderer()
{
if(d == 0)
{
d = 1;
_cls1 _lcls1;
(_lcls1 = new _cls1()).setDaemon(true);
_lcls1.start();
}
}
public boolean isAvailable()
{
if(d != 2)
{
for(int i = 0; d != 2 && i++ < 50;)
try
{
Thread.sleep(50L);
}
catch(InterruptedException _ex) { }
if(d != 2)
{
d = 2;
b = false;
}
}
return b;
}
protected void playSound(URL url)
{
if(a == null)
{
a = MidiSystem.getSequencer();
if(!a.isOpen())
a.open();
}
javax.sound.midi.Sequence sequence = MidiSystem.getSequence(getAudioFile());
a.setSequence(sequence);
a.start();
a.addMetaEventListener(this);
if(volume != 1.0F)
setSoundVolume(volume);
return;
printStackTrace();
status = 4;
return;
}
protected void replaySound(URL url)
{
a.start();
a.addMetaEventListener(this);
}
protected void stopSound()
{
a.stop();
a.setMicrosecondPosition(0L);
a.removeMetaEventListener(this);
}
public void meta(MetaMessage metamessage)
{
if(metamessage.getType() == 47)
{
status = 3;
a.setMicrosecondPosition(0L);
a.removeMetaEventListener(this);
}
}
protected void setSoundVolume(float f)
{
if(a != null)
{
MidiChannel amidichannel[] = ((Synthesizer)a).getChannels();
for(int i = 0; i < amidichannel.length; i++)
amidichannel[i].controlChange(7, (int)(f * 127F));
}
}
public boolean isVolumeSupported()
{
return c;
}
static boolean a(boolean flag)
{
return c = flag;
}
static boolean b(boolean flag)
{
return b = flag;
}
static int c(int i)
{
return d = i;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -