【问题标题】:Java Applet play sound file has a different effect than Windows Media Player?Java Applet 播放声音文件的效果与 Windows Media Player 不同?
【发布时间】:2009-11-08 04:51:10
【问题描述】:

我有一个自动拨打电话号码的Java程序,它可以产生模仿电话键盘的声音,可以正常通话,但是我遇到了电话卡的问题,它需要我输入卡号,我的程序产生的声音没有被对方接受,它总是说卡号不正确,所以我做了一些研究,找到了一个可以为我生成整个卡号声音序列的网站,我保存了它,但是问题是当我使用以下 Java 方法播放 *.wav 声音文件时,它仍然不被接受,但如果我用 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 来播放声音?

【问题讨论】:

    标签: java applet audio wmp playback


    【解决方案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 而不播放任何文件,但如果我指定文件路径,它根本不会打开或播放任何东西。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      相关资源
      最近更新 更多