如何在Java中将字节数组转换为AudioInputStream [英] How to convert a byte array into an AudioInputStream in Java

查看:87
本文介绍了如何在Java中将字节数组转换为AudioInputStream的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望将字节数组转换为AudioInputStream。字节数组以前是从*.wav文件填充的。我有以下代码:

    public static AudioInputStream writeBytesBackToStream(byte[] bytes) {
    ByteArrayInputStream baiut = new ByteArrayInputStream(bytes);
    AudioInputStream stream = null;
    try {
        stream = AudioSystem.getAudioInputStream(baiut);
    } catch (UnsupportedAudioFileException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    if(stream.equals(null) || stream == null) {
        System.out.println("WARNING: Stream read by byte array is null!");
    }
    return stream;
}

现在我只想将此字节数组转换为AudioInputStream,但引发了UnsupportedAudioFileException:

javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from    input stream

有没有人有主意?

wav

如果正确读取wav文件,字节数组将只包含原始推荐答案数据。因此,AudioSystem无法识别流的格式,并引发异常。

这在设计上是不可行的。您需要在流中提供完整的音频格式图像,才能使AudioSystem识别流的格式,而不仅仅是原始数据。

这篇关于如何在Java中将字节数组转换为AudioInputStream的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆