2009-11-08 38 views
0

我有一个Java程序,可以自动拨打电话号码,它可以生成模拟电话键盘的声音,可以正常拨打电话,但我在遇到问题时提到电话卡,它要求我输入卡号,我的程序产生的声音没有被另一端接受,它总是说卡号是不正确的,所以我做了一些研究,发现一个网站会为我生成整个卡号的声音序列,并且我保存了它,但是当我使用下面的Java方法播放* .wav声音文件时,它仍然不被接受,但如果我用Windows Media Player播放同一个文件,另一端会接受它作为有效的卡号音,为什么?这是否意味着Java Applet播放声音文件与Windows Media Player有不同的作用?Java Applet播放声音文件与Windows Media Player有不同的作用?

void playAudioFile(String File_Name) 
    { 
    try { Applet.newAudioClip(new URL("file:/"+File_Name)).play(); } 
    catch (Exception e) { e.printStackTrace(); } 
    } 

如果是这样,我怎么能在我的Java程序中调用Windows Media Player播放声音?

回答

2

我调整了音量,现在它工作正常。

0

我不能告诉你为什么你看到这种效果,但我可以告诉你如何从你的程序启动Windows Media Player。

假设Windows XP和Windows媒体播放器11:

String myCommand = "\"C:\\Program Files\\Windows Media Player\\wmplayer\\\" /open \"" + File_Name + "\"" 
Runtime.getRuntime().exec(myCommand); 

这将启动Windows媒体播放器,并使其播放FILE_NAME点(完整路径很可能是最安全的)文件。如果媒体播放器已经打开,那么它仍然会工作:)任何正在播放的文件将被中断。

我希望这会有所帮助。

+0

不应该使用桌面对象来启动所述.wav文件,而不是依赖于操作系统特定的语义。 – Xailor 2009-11-10 15:08:02

+0

当然,如果有可能的话。 Frank问一个叫Windows Media Player播放他的声音文件的方法。这听起来很适合我的操作系统。我承认这不是解决这个问题的最好方法,但它仍是一个解决方案。 – 2009-11-10 18:29:19

+0

我在Win Vista下试过了,没有工作,Windows Media Player没有启动窗口,也没有播放声音,我也试过这个:“\”C:\\ Program Files \\ Windows Media Player \\ wmplayer。 exe \\\“/ open \”“+ File_Name +”\“” Vista可以不同于XP吗? – Frank 2009-11-12 18:27:47