我有Code哪个播放mp3文件java。
我遇到的问题是,
- >仅当程序在具有断点的调试模式下运行时才会听到音频输出,但在运行模式下则不会。
可能有什么办法可以解决这个问题?我附上了代码以便更好地理解。
FileInputStream mp3_file=new FileInputStream("xyz.mp3");
Player mp3=new Player(mp3_file);
mp3.play();
System.out.println("Over");
答案 0 :(得分:1)
可能你的节目在音乐结束前就结束了。确保您的节目在音乐播放完毕之前不会结束。例如:
mp3.play();
System.out.println("Press Enter to stop");
System.in.read(); // wait until user presses Enter
答案 1 :(得分:0)
很可能你的程序刚刚退出,因为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){}
睡觉主线程并等待太多时间。
答案 2 :(得分:0)
我在我的一个项目中面临同样的问题。我用过循环。它解决了我的问题。
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文件并运行它,它可以正常工作.....;)
答案 3 :(得分:0)
使用waitFor()指令进行线程化可能是解决方法。这也可以使您能够为控制接口使用单独的线程,从而使您可以中断或暂停。