你好!很高兴为你解答。
首先,你打开这个登录窗口之后,你要求它能够播放音乐,你就在你启动的JFrame主线程main构造并显示完成JFrame后,新建一个方法叫做thisplayBgMusic();
这里解释一下,为什么叫你在启动JFrame主线程中调用这个方法而不是在你的QQLoinFrame的构造方法中调用,原因是Swing的处理机制原理是利用EventQueue来执行的,可以说,如果你直接new的话都是单线程(main)处理程序,这样的话就会对这个线程依赖过大,而这个线程也负荷过大。当你想启动播放音乐或者IO读写之类的耗时线程时,你可以试试在构造方法中执行这方法,你将会发现你的Swing程序没反应,要等某线程处理完后才可以继续显示。这里main线程阻塞,所以你的程序表面看起来不动,组件没反应,这就是因为阻塞掉了。解决这个问题的办法就是如下(这是其中一种,另一种你可以自行查找):
public static void main(String args[]) {
javaawtEventQueueinvokeLater(new Runnable() {
public void run() {
QQLogin qq = new QQLogin();
thisplayBgMusic();
}
});
}
正文
假设,你启动JFrame的主方法如下:
public static void main(String[] args) {
QQLogin qq = new QQLogin();
thisplayBgMusic();
}
thisplayBgMusic()方法
/
播放背景音乐,调用PlaySound线程类
/
public void playBgMusic() {
PlaySound play = new PlaySound();
Thread t = new Thread(play);
tstart();
}
PlaySound线程类
/
PlaySound线程类,其中,因为你要求不使用JMF,所以,请选择au或者wav格式吧
/
public class PlaySound implements Runnable{
public void run() {
try {
AudioClip audio;
URL url = null;
File musicFile = new File("msgwav");
URI uri = musicFiletoURI();
url = uritoURL();
audio = AppletnewAudioClip(url);
audioplay();
} catch (MalformedURLException ex) {
LoggergetLogger(PlayMsgSoundclassgetName())log(LevelSEVERE, null, ex);
}
}
}
Balabolka 是我用过的最强文本转语音软件,完全开源,官方免费支持中文,调用Windows内置语音引擎,最大亮点是生成语音文件非常非常快。
官方网站:>
PS官网好像被墙了,需要自己找到下载的办法。
我用wpf画过wav的频谱图和语谱图,这里有个参考>
想要将文字转为语音,好用的软件就可以使用下面的方法来帮助你。
文字转语音的话,你可以借助一些软件的帮助来完成这也 *** 作 ,
文字转语音的方法:
在应用宝或者浏览器里面找到这个软件并且启动它
接下来,打开软件,然后点击选择新建一个文本文档。
2文档新建好之后,点击将需要转换的文字输入或者拷贝到文档里。
3点击预览,然后就可以开始开始处理上面的文字,将文字转换成语音。
4文字转换成语音后,可以点击试听一下,再点击右上角的按钮保存语音文件。
5语音文件会以wav的格式保存在文件库中。
以上就是关于java 窗口怎么加背景音乐我已经写好窗口了全部的内容,包括:java 窗口怎么加背景音乐我已经写好窗口了、文字转换语音软件哪个比较好用、怎么通过程序(如python)判断一个音频文件(如wav、mp3等格式)的声音清晰度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)