ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュのBLOBからwavファイルの読み込み+再生

  • mixiチェック
  • このエントリーをはてなブックマークに追加
OracleにwavファイルをBLOB型でいれてそこから呼び出してJava上で再生ということを明日までには仕上げなくてはならなくなったのですが、現状詰まっています。
なかなか解説サイトも見つからないので、解決の糸口すら見つかりません。
解決サイトだけでもいいのでどなたか教えていただけないでしょうか?

-------
以下のソースは急ぎで作ったものですのですべてmainで行っています。
package blob;

import java.io.*;

import java.sql.*;

import javax.sound.sampled.*;

public class MusicGetter {
  private static final int EXTERNAL_BUFFER_SIZE = 128000;
  public static void main(String[] args)
    throws ClassNotFoundException, SQLException,
        UnsupportedAudioFileException,
        IOException, LineUnavailableException {
    
    Class.forName("oracle.jdbc.driver.OracleDriver");
    
    Connection conn = DriverManager.getConnection(
      "jdbc:oracle:thin:@localhost:1521:ip","gogo","nono");
    
    Statement stmt = conn.createStatement();
    
    ResultSet rs = stmt.executeQuery("SELECT music from JUKEBOX");
    Blob lob = rs.getBlob("music");
    InputStream ip = lob.getBinaryStream();
    AudioInputStream ais = AudioSystem.getAudioInputStream(ip);
    AudioFormat audioFormat = ais.getFormat();
    
    DataLine.Info info = new DataLine.Info(
      SourceDataLine.class,audioFormat);
    
    SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
    line.open(audioFormat);
    
    line.start();
    
    int nBytesRead = 0;
    byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
    while (nBytesRead != -1) {
      nBytesRead = ais.read(abData, 0, abData.length);
      if (nBytesRead >= 0) {
        line.write(abData, 0, nBytesRead);
      }
    }
    
    line.drain();
    line.close();
    
    System.exit(0);
    
  }
}

コメント(4)

記入漏れがあったので追記。

表は以下のようになっています。
mid:NUMBER(4) primary key
mname:VARCHAR2(60)
music:BLOB

現状SQLExceptionが出る状態で"ResultSet.nextはコールされませんでした"と出る状態です。
あぁぁぁぁぁぁ・・・・
すみません_/ ̄|○
初歩的なミスでした・・・
rs.nextでポインタを移動してなかったので値がとりだせてなかったみたいです・・・

恥ずかしいことこの上ない_/ ̄|○
無事取り出して再生することが出来ました。
お騒がせしました。

管理人さんよろしければトピックの削除をお願いいたします。
>>h-u31さん
あ、時間差で気づいてませんでした・・・
その通りですね。
まったくもってお恥ずかしい限りです・・・
ご丁寧にレスありがとうございました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング