使用 Tritonus AudioSystem:将 PCM byte[] 数组转换为 mp3 byte[] 数组

Posted

技术标签:

【中文标题】使用 Tritonus AudioSystem:将 PCM byte[] 数组转换为 mp3 byte[] 数组【英文标题】:Using Tritonus AudioSystem: Convert PCM byte[] array to mp3 byte[] array 【发布时间】:2010-10-28 22:36:42 【问题描述】:

我的音频项目中的一个库不断输出 PCM 音频的 byte[] 数组流(以及长度和偏移整数)。我正在学习使用 Java Sound API 的 Tritonus 实现将此 PCM 流编码为 mp3。

Java 声音 API 通过 AudioInputStream(由 1)和编码器(由 Tritonus 提供)2)PCM InputStream)提供转换/编码的 byte[] 数组。

但我宁愿像这样使用简单的功能:

convertPCMToMp3(byte[] samples, int offset, int length)

 // convert the samples to mp3
 // return byte[] encodedsamples int offset int length

Java Sound API 中是否存在这种情况?

如果没有,我可能只使用这些 ByteBuffer-InputStream 实现之一...

http://www.google.com/search?&q=inputstream+bytebuffer

【问题讨论】:

【参考方案1】:

我不知道纯 java PCM 到 MP3 转换器,但你当然可以使用 Xuggler 来做到这一点。我建议先看看他们的 MediaTools 类,然后再搞乱任何旧的陈旧库。

http://xuggle.wordpress.com/2009/01/23/how-to-use-xuggler-to-decode-and-play-audio/

【讨论】:

以上是关于使用 Tritonus AudioSystem:将 PCM byte[] 数组转换为 mp3 byte[] 数组的主要内容,如果未能解决你的问题,请参考以下文章

Android - 如何获取 AudioManager / AudioSystem 参数列表

当 clip.stop(); 时 AudioSystem 剪辑不会停止播放正在运行

AudioSystem.getMixerInfo() 在 Java/gentoo 中一无所获

Audiosystem 过早停止写入 AudioInputStream

通过 AudioSystem.getAudioInputStream(file) 读取 MP3 文件时出现异常

Java AudioSystem.getAudioFileTypes() 在 android 中返回空数组