0

我正在开发一个 Web 应用程序,其中我使用flash 插件从麦克风录制声音。录制完成后,我可以将录制的文件上传到服务器。请看下面的代码:

            // Get the input stream
            InputStream is = request.getInputStream();
            InputStream bufferedIn = new BufferedInputStream(is);
            AudioInputStream ais = AudioSystem.getAudioInputStream(bufferedIn);

            // Declare the new format to convert to
            AudioFormat audioFormat =  new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);

            // Convert the format and return the new audio input stream
            ais = AudioSystem.getAudioInputStream(audioFormat, ais);

现在,在此转换之后,我想将 ais 中的音频数据保存到缓冲区中并将其上传到数据库。

我怎么做?谢谢!!:)

4

1 回答 1

0

AudioInputStreamextends InputStream,因此您可以直接使用它来存储到数据库中。使用 JDBC 时,您可以使用:

ais = AudioSystem.getAudioInputStream(audioFormat, ais);
PreparedStatement prep = conn.prepareStatement("insert into data values(?, ?)");
prep.setInt(1, 1);
prep.setBinaryStream(2, ais);

请注意setBinaryStream,没有长度参数仅在 Java 6 和更新版本中可用。有些数据库可能不支持它。

于 2012-05-23T08:03:16.760 回答