2012-05-23 168 views
0

我正在使用flash plugin从我的麦克风录制声音的网络应用程序。录制完成后,我可以将录制的文件上传到服务器。 PLZ看到下面的代码:音频输入流到缓冲区

  // 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的音频数据保存到缓冲区中,并把它上传到数据库。

我该怎么做?谢谢!! :)

回答

0

AudioInputStream延伸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和更新可用。有些数据库可能不支持它。