4

オーディオ ファイルを sqlite データベース (BLOB として) に保存し、db から取得して、ボタンがクリックされたときに再生したいと考えています。私のdbテーブルには、rowID、image、audioの3つのフィールドがあり、テーブルの各行には、imageとaudioが(BLOBとして)保存されています。

私はこれを試しましたが、うまくいきませんでした:

byte[] byteAudio2 = null;

Cursor cur1 = db.query("audiofromdb_tbl", null, null, null, null, null, null);

cur1.moveToFirst();
byteAudio2 = cur1.getBlob(cur1.getColumnIndex("audio"));        
File tempWav = null;
    FileOutputStream fos = new FileOutputStream(tempWav);
    fos.write(byteAudio2);
fos.close();

MediaPlayer mp = new MediaPlayer();
mp.setDataSource(fos.getFD());
mp.prepare();
mp.start();
4

2 に答える 2

1

このようなことを試してください:

byte[] buffer = new byte[2048];
int size = 0;
ByteArrayInputStream byteArrayStream = new ByteArrayInputStream(byteAudio2); 

while ((size = byteArrayStream.read(buffer, 0, buffer.length)) > 0) {
    fos.write(buffer, 0, size);
}

[]

于 2013-01-03T13:20:12.270 に答える