는
@Override
public void onClick(View arg0) {
SQLiteDatabase myDb;
String MySQL;
byte[] byteImage1 = null;
byte[] byteImage2 = null;
MySQL="create table emp1(_id INTEGER primary key autoincrement, sample TEXT not null, picture BLOB);";
myDb = openOrCreateDatabase("Blob List", Context.MODE_PRIVATE, null);
myDb.execSQL(MySQL);
String s=myDb.getPath();
textView.append("\r\n" + s+"\r\n");
myDb.execSQL("delete from emp1");
ContentValues newValues = new ContentValues();
newValues.put("sample", "HI Hello");
try
{
FileInputStream instream = new FileInputStream("/sdcard/AudioRecorder/AudioRecorder.wav");
BufferedInputStream bif = new BufferedInputStream(instream);
byteImage1 = new byte[bif.available()];
bif.read(byteImage1);
textView.append("\r\n" + byteImage1.length+"\r\n");
newValues.put("picture", byteImage1);
long ret = myDb.insert("emp1", null, newValues);
if(ret<0) textView.append("\r\n!!! Error add blob filed!!!\r\n");
} catch (IOException e)
{
textView.append("\r\n!!! Error: " + e+"!!!\r\n");
}
Cursor cur = myDb.query("emp1",null, null, null, null, null, null);
cur.moveToFirst();
while (cur.isAfterLast() == false)
{
textView.append("\r\n" + cur.getString(1)+"\r\n");
cur.moveToNext();
}
///////Read data from blob field////////////////////
cur.moveToFirst();
byteImage2=cur.getBlob(cur.getColumnIndex("picture"));
bmImage.setImageBitmap(BitmapFactory.decodeByteArray(byteImage2, 0, byteImage2.length));
textView.append("\r\n" + byteImage2.length+"\r\n");
cur.close();
myDb.close();
}
});
안녕하세요, 리카르도, 답장을 보내 주셔서 감사합니다. 내 파일을 자산 폴더에 저장하면 응용 프로그램 크기가 늘어납니다. 실현 가능한 솔루션입니까? 이것에 대해 의견을 말하십시오. 또는 낮은 소비 형식으로 오디오 파일을 저장할 수있는 방법은 무엇입니까 ?? –
DB에 파일을 저장하면 앱 크기도 커지고 크기를 늘리지 않고도 더 많은 바이트를 포함 할 수있는 방법을 알지 못합니다. 파일을 압축 할 수는 있지만 많이 얻을 수는 없습니다. 음악 파일이 이미 매우 압축되어 있기 때문에 ... –
@ Vinayak-Bevinakatti, APK 크기에 대해 걱정하는 경우 앱을 처음 실행할 때 서버에서 파일을 다운로드 할 수 있습니다. – Rajeev