繁体   English   中英

Java jLayer GUI 应用程序在播放音乐时冻结

[英]Java jLayer GUI Application freezes while playing the music

我正在处理一个需要背景音乐的 Java 项目,因此我使用 jLayer(Java 平台的 MP3 库)来提高我的项目的适用性和性能。

我需要在JFileChooser的帮助下播放音乐,以便用户可以轻松地从菜单栏中运行自己的音乐。

但是每当我尝试运行任何随机音乐时,整个 GUI 应用程序都会冻结。

这是我的应用程序的代码片段

这是菜单栏的图像,其中添加了“选择自己的音乐”作为菜单项

任何人都可以帮我修复这个代码吗?

每当我尝试在“JFileChooser”的帮助下从菜单栏中运行任何随机音乐时,整个 GUI 应用程序都会冻结

从侦听器执行的代码在Event Dispatch Thread (EDT) 该线程负责响应事件并重新绘制 GUI。 如果您执行一个较长的任务(如播放音乐),则 GUI 无法响应事件。

您需要在单独的Thread上启动音乐播放器。 一种方法是使用SwingWorker ,它提供了在使用 Swing 时有用的附加功能。

有关更多信息,请阅读Swing 中的并发性教程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM