到目前为止,我只找到了两种方法:
ad.2。最近的代码(2010年)
但什么也没做,根本没有声音。
ad.1。例如:
我得到的只是异常“音频设备不可用”。正如本文(2008) - lsof |grep snd — how to free a linux sound device - 解释Java必须获得对音频设备的独占访问权。
但是我承受不起这样的条件。我使用声音来通知自己长时间运行的过程(几个小时),我无法摆脱所有声音(包括那些强制通过Flash广告)只是为了让Java舒适。
所以现在我使用极端 - 我只是启动外部程序:https://stackoverflow.com/a/8370223/210342。这很丑陋,因为刚启动的新程序只是为了发出通知。
目前有办法播放WAV文件:
Java 1.6,openSUSE 11.4
答案 0 :(得分:2)
您是否尝试过Java Media Framework (JMF)?
Java Media Framework API(JMF)支持音频,视频和其他功能 基于时间的媒体将添加到基于Java构建的应用程序和applet 技术。这个可选包,可以捕捉,播放, 流,并转码多种媒体格式,扩展了Java 2 适用于多媒体开发人员的平台,标准版(J2SE) 提供强大的工具包来开发可扩展的跨平台 技术
答案 1 :(得分:0)
此站点提供了一个简单的swing应用程序来捕获和播放wav文件 http://www.java-tips.org/java-se-tips/javax.sound/capturing-audio-with-java-sound-api.html 您可以修改和使用以下站点中的代码 http://www.anyexample.com/programming/java/java_play_wav_sound_file.xml
你不能在需要播放动作时简单地创建一个新线程。因此无论背景过程如何,播放都会继续进行
答案 2 :(得分:0)
所以,多亏了AT的回答,我从JMF转到JMF问题,这导致我进入了VLC-J。这就是答案 - 为了在Java程序中使用多媒体,根本不使用Java(可惜,顺便说一下,2012年的Java没有可靠的多媒体层,哎。)。
标记为已解决,因为VLC-J允许我毫无问题地播放音频。
主要项目地点: http://code.google.com/p/vlcj/
答案 3 :(得分:-1)
Java在1.4+版本中内置了这种支持(在javax.sound,javax.sound.sampled包中提供)。它与系统上的其他应用程序协同工作,因为它使用平台混合器(ALSA或PULSE)