我有代码播放mp3文件的Java。Java中的音乐播放器?
,我遇到的问题是,
- >程序时使用断点调试模式下运行的音频输出只是听说过,但不是在运行模式。
可能的解决方法是什么?为了更好的理解,我附上了代码。
FileInputStream mp3_file=new FileInputStream("xyz.mp3");
Player mp3=new Player(mp3_file);
mp3.play();
System.out.println("Over");
我有代码播放mp3文件的Java。Java中的音乐播放器?
,我遇到的问题是,
- >程序时使用断点调试模式下运行的音频输出只是听说过,但不是在运行模式。
可能的解决方法是什么?为了更好的理解,我附上了代码。
FileInputStream mp3_file=new FileInputStream("xyz.mp3");
Player mp3=new Player(mp3_file);
mp3.play();
System.out.println("Over");
我在我的项目中遇到了同样的问题。我用于循环。它解决了我的问题。
FileInputStream mp3_file=new FileInputStream("xyz.mp3");
Player mp3=new Player(mp3_file);
for(int i=0;i<=3; i++)
mp3.play();
System.out.println("Over");
但如果创建代码的可执行的JAR文件并运行它,它工作正常.....;)
最有可能你的程序只是退出,因为在main
方法的代码完成非常快。
我们不知道你的Player
是什么,但我认为它是在与主线程不同的线程上播放音乐,所以只要你的代码停止,它就可以正常工作。
在main
方法中,应该停止执行代码。对于这一点,只是你可以使用读取控制台的东西:
import java.util.Scanner;
...
// here we will get input and program won't quit until we press Return
new Scanner(System.in).readLine();
除此之外,你可以使用像
try{Thread.sleep(Long.MAX_VALUE);} catch(Exception e){}
睡觉主线程和等待太多时间。
在音乐完成之前,您的程序可能已经结束。确保您的节目在音乐结束前不会结束。例如:
mp3.play();
System.out.println("Press Enter to stop");
System.in.read(); // wait until user presses Enter
所以,当你确实是只要运行它会发生什么?应用程序是否立即关闭?我怀疑'Player.play()'方法只是开始播放它,而不是阻塞直到曲目完成。 –
经过一段时间,控制台输出为“Over”,没有音频输出... –