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 不同?的主要内容,如果未能解决你的问题,请参考以下文章

Java/Eclipse 不会播放声音 [关闭]

播放任何声音文件(或至少是常见的音频文件)

Swift - 制作一个录音机(声音的录制与播放)

求一段运用matlab把俩个声音文件混合成一个文件的程序!我只会编写一小段声音读取和播放的程序。混合就不会

an 跳转各个fla发布的html,并控制声音播放与停止

如何播放声音以创建弹奏效果?