【问题标题】:Sun, Audio-player and Sound I/OSun、音频播放器和声音 I/O
【发布时间】:2014-03-28 17:01:23
【问题描述】:

我有几个关于 Sun、音频播放器和声音输入/输出的问题

为什么sun.audio.AudioPlayer 包不是Java API 的一部分?这里有一些信息:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6b14/sun/audio/AudioPlayer.java 但它仍然是我正在使用的默认 JDK 构建的一部分。

我尝试过使用 JMF 并花了半天时间在它周围胡思乱想,但无济于事。我设法将jmf.jar 导入 Eclipse 我尝试了一个演示脚本,但它仍然像没有人做生意一样吐出错误。考虑到它现在被遗弃了?!?然而,Java 确实提供了一个相对较新版本的链接:http://www.oracle.com/technetwork/java/javase/download-142937.html 我有点担心,但是页面底部的以下内容如何写成“false,,,,,,,"?

您认为最适合用于音频 I/O 和操作的包是什么?

我只是想从事一个项目,我认为 MP3 播放器是一个不错的起点,因为我可以做一点摇摆。然而,这似乎相当困难,因为从我所阅读的内容来看,Java 并不是很热衷于制作 mp3 和音频处理包。

【问题讨论】:

  • 许多独立游戏程序员使用 ogg 压缩而不是 mp3。有很好的第三方解码器。还有一些不错的小库,例如 TinySound,允许混音。

标签: java javasound jmf sun audio-player


【解决方案1】:

sun.audio 未记录

与其他 sun.* 软件包一样,它没有记录,可能会消失。

Java 媒体框架过时

它是一个可选包,不是 SE 的一部分,并且很长时间没有更新。 Oracle 上有一个页面,它仍然可用,但是,谁知道它会发生什么。

javax.sound 是 SE 的一部分

这是当前的 Java 声音实现,它是 SE 的一部分,它的教程可以在 here 找到。如果您想在 Java 中使用音频,那么您应该学习这一点,因为它是官方的、有效的、有时会更新并且文档齐全。

javax.sound 不播放 mp3

这是为什么呢?尽管在文件系统中无处不在,mp3 的历史却是licensing and patent issues。 Mp3 是一个雷区,这可能是 Sun/Oracle 没有努力支持它的原因。 (如果这就是原因,我不怪他们。)

如果您真的想播放 mp3,网上有一些第三方解码器。没有必要推荐一个,因为他们都会读 mp3。


JavaFX 可以播放 mp3

使用javafx.scene.media.MediaPlayer。见javafx.scene.media/Supported Media Types。 JavaFX 是 Java 8(以及 Java 7 的新版本)的 JRE/JDK 的一部分,并且(可能)最终会取代几个 SE API,例如 javax.soundjavax.swing

【讨论】:

  • 很好,很好的可靠答案。在寻找关于 Java 和音频功能的数千个其他帖子的特定答案时,有时很难区分左右...实际上我在等待回复时正在阅读 javax.sound.* 包。
  • "javax.sound 不播放 mp3" 它缺少的只是 MP3 的 SPI。 JMF 有一个。详情请参阅Java Sound info. page
  • 嘿,你成功了。从 JDK 9 开始,sun.audio 已从 Java 中删除。错误报告 here。我曾经有一些使用 sun.audio 的代码在 JDK 8 上工作,但是一旦我迁移到 JDK 9,该代码就停止工作,我开始使用 JavaFX 媒体播放器功能。但是,既然 JavaFX 已从 Java 11 开始从 JDK 中分离出来,那么引入 JavaFX只是 来播放简单的音频剪辑可能不是一个好主意。
猜你喜欢
  • 1970-01-01
  • 2022-08-21
  • 1970-01-01
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多