Java Applet 播放声音文件的效果与 Windows Media Player 不同?
Posted
技术标签:
【中文标题】Java Applet 播放声音文件的效果与 Windows Media Player 不同?【英文标题】:Java Applet play sound file has a different effect than Windows Media Player? 【发布时间】:2009-11-08 04:51:10 【问题描述】:我有一个自动拨打电话号码的Java程序,它可以产生模仿电话键盘的声音,可以正常通话,但是我遇到了电话卡的问题,它需要我输入卡号,我的程序产生的声音没有被对方接受,它总是说卡号不正确,所以我做了一些研究,找到了一个可以为我生成整个卡号声音序列的网站,我保存了它,但是问题是当我使用以下 Java 方法播放 *.wav 声音文件时,它仍然不被接受,但如果我用 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 来播放声音?
【问题讨论】:
【参考方案1】:我调了音量,现在可以正常使用了。
【讨论】:
【参考方案2】:我无法告诉您究竟为什么会看到这种效果,但我可以告诉您如何从您的程序中启动 Windows Media Player。
假设 Windows XP 和 Windows Media Player 11:
String myCommand = "\"C:\\Program Files\\Windows Media Player\\wmplayer\\\" /open \"" + File_Name + "\""
Runtime.getRuntime().exec(myCommand);
这将启动 Windows Media Player 并使其播放 File_Name 指向的文件(完整路径可能是最安全的)。如果媒体播放器已经打开,那么它仍然可以工作:) 任何当前正在播放的文件都将被中断。
我希望这会有所帮助。
【讨论】:
不应该使用桌面对象来启动所说的 .wav 文件而不是依赖操作系统特定的语义。 当然,如果可以的话。 Frank 要求调用 Windows Media Player 来播放他的声音文件。这对我来说听起来很特定于操作系统。我承认这不是解决这个问题的最佳方法,但它仍然是一个解决方案。 我在Win Vista下试过了,不行,Windows Media Player没有启动窗口,也没有声音,我也试过这个:"\"C:\\Program Files\\Windows Media Player\\wmplayer.exe\\\" /open \"" + File_Name + "\"" Vista 和 XP 有什么不同吗? 是的,Vista 可能与 XP 不同。试试这个:找到 Windows Media Player 的正确路径并将 myCommand 更改为指向正确的文件。如果您右键单击媒体播放器的快捷方式,您应该能够在属性窗口中找到路径。 是的,如果我执行 "\"C:\\Program Files\\Windows Media Player\\wmplayer.exe",它将打开 WMP 而不播放任何文件,但如果我指定文件路径,它根本不会打开或播放任何东西。以上是关于Java Applet 播放声音文件的效果与 Windows Media Player 不同?的主要内容,如果未能解决你的问题,请参考以下文章