概述
嗨,我正在尝试编辑此代码,但不知道从哪里开始 . 我不是程序员,它是我试图修改的传统游戏的公共源代码 . 你能建议至少我需要看的区域,以便我能读懂吗?我想要实现的是:
现在的情况:
当音乐从文件夹播放(由PATH或RAND指定)然后输入FILE命令指定要播放的另一个声音文件时,播放会立即切换到新的声音文件,但随后继续循环播放该声音文件
期望的情况:
FILE命令切换到播放一次的新声音文件,然后将PATH重置为FILE命令之前的路径,即原始音乐恢复
我有一个包含大量音乐的文件夹,我想像广播电台一样播放,但是当某个事件发生时我想要播放另一个声音文件,然后返回广播电台
这是用Java 1.3编写的,解决方案需要与jdk1.3.1_20一起编译 . 如果您需要更多信息,请告诉我?
即使只是暗示它是不可能的或困难的也会很棒 . 提前致谢!
public class CmdMusic extends Cmd
{
static class PlayInfo
{
public String objName;
public boolean isPath;
public String list[];
public PlayInfo(String s, boolean flag)
{
objName = s;
isPath = flag;
list = null;
}
public PlayInfo(String as[])
{
objName = null;
isPath = false;
list = as;
}
}
static class WFileFilter
implements FileFilter
{
public boolean accept(File file)
{
if(!file.isFile() || file.isHidden())
return false;
String s = file.getName();
if(s == null)
return false;
int i = s.length();
if(i faderIncr)
{
fader -= faderIncr;
prevMusic.setVolume(fader);
} else
{
prevMusic.cancel();
prevMusic.release();
prevMusic = null;
}
if(list != null)
{
if(curMusic != null && !curMusic.isPlaying() && playState())
{
curMusic.cancel();
curMusic.release();
curMusic = null;
}
if(curMusic == null && playState())
{
index++;
if(index >= list.length)
index = 0;
fileName = null;
setFile(list[index], true);
}
}
}
public static boolean isPathEnabled(String s)
{
byte byte0 = -1;
if(s == null)
return true;
if(s.compareToIgnoreCase("music/takeoff") == 0)
byte0 = 0;
else
if(s.compareToIgnoreCase("music/inflight") == 0)
byte0 = 1;
else
if(s.compareToIgnoreCase("music/crash") == 0)
byte0 = 2;
else
return true;
SoundFlags soundflags = (SoundFlags)CfgTools.get("MusState");
if(soundflags == null)
return false;
else
return soundflags.get(byte0);
}
public static void setPath(String s, boolean flag)
{
if(s == null)
return;
if(flag && pathRandName != null && s.compareToIgnoreCase(pathRandName) == 0)
return;
File file = new File("./samples/" + s);
File afile[] = file.listFiles(new WFileFilter());
if(afile == null || afile.length 1.0F)
System.out.println("ERROR: value must be between 0.0 - 1.0");
else
setVolume(f);
}
}
}
return CmdEnv.RETURN_OK;
}
private static final boolean _debug = false;
protected static SoundFX musFX = null;
protected static String fileName = null;
protected static String pathRandName = null;
protected static float vol = 1.0F;
protected static Random rnd = new Random();
protected static Stack stack = new Stack();
protected static boolean bPlay = false;
protected static boolean bPlaying = false;
protected static boolean bList = false;
public static final String PATH = "PATH";
public static final String RAND = "RAND";
public static final String FILE = "FILE";
public static final String LIST = "LIST";
public static final String PLAY = "PLAY";
public static final String STOP = "STOP";
public static final String BREAK = "BREAK";
public static final String VOL = "VOL";
public static final String PUSH = "PUSH";
public static final String POP = "POP";
public static final String APPLY = "APPLY";
private static AudioStream prevMusic = null;
private static AudioStream curMusic = null;
private static float faderIncr = 0.02F;
private static float fader = 1.0F;
private static String list[] = null;
private static int index = 0;
}
最后
以上就是高大奇迹为你收集整理的java音乐播放器暂停_Java 1.3音乐播放器 - 如何停止播放中断的全部内容,希望文章能够帮你解决java音乐播放器暂停_Java 1.3音乐播放器 - 如何停止播放中断所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复