【问题标题】:Flex - Java byte to mp3Flex - Java 字节到 mp3
【发布时间】:2012-09-14 12:33:24
【问题描述】:

我在将字节转换为 .mp3 声音文件时遇到问题。在我的情况下,我使用 FileOutputStream 使用它的 write(bytes) 方法来做到这一点,但它只是创建了一个带有 mp3 扩展名的数据文件,但我无法在我的 PC 上的任何播放器中播放它。

注意:我从 Flex Michrophone 录制它并将 ByteArray 发送到 java。

我应该使用哪些库在 java 中添加 mp3 声音文件头等?

更新:我什至无法将我的原始数据转换为 java sound api 支持的 Wave 格式。它为我创建了带有录制声音但有噪音的声音 - 问题出在哪里?

这是我的 wave 代码:

AudioFormat format = new AudioFormat(Encoding.PCM_SIGNED, 44100, 16, 2, 2, 44100, true);

ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
AudioInputStream stream = new AudioInputStream(bais, format, bytes.length/format.getFrameSize());


AudioSystem.write(stream, AudioFileFormat.Type.WAVE, new File(path+"zzz.wav")); 

我的音频格式有什么问题???在 MP3 的情况下我必须使用哪一个?!

紧急求助!任何帮助将不胜感激!

【问题讨论】:

    标签: java actionscript-3 apache-flex flex4.5 lame


    【解决方案1】:

    仅将原始字节写入扩展名为 .mp3 的文件并不会神奇地将数据转换为 MP3 格式。您需要使用编码器对其进行压缩。

    通过 google 快速搜索发现 LAMEOnJ,这是流行的 LAME MP3 编码器的 Java API。

    【讨论】:

    • 嗯,实际上我需要的是一个不使用系统库的库——因为我在 Mac os 中进行开发,而我正在开发的程序必须在 windows 和 linux 上运行?!这种使用系统库的库会浪费我测试的时间..
    • 最近我发现 lamejb 库是 Lame 的包装器 - 所以不需要系统中的任何 Lame 库。但是在任何地方都没有任何示例,下载的 zip 下的示例文件夹中的示例只是我无法理解的测试类
    猜你喜欢
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2012-07-10
    相关资源
    最近更新 更多