essayez le code suivant ... il stocké pour moi .....
@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();
}
});
Salut Ricardo, Merci pour votre réponse. Si je stocke mes fichiers dans le dossier des ressources, la taille de l'application augmente. Est-ce la solution possible? veuillez commenter ceci. ou existe-t-il un moyen de stocker le fichier audio dans un format à faible consommation? –
Si vous stockez vos fichiers dans votre base de données, votre taille d'application augmentera également, je ne vois pas comment vous pourriez vous en sortir avec plus d'octets sans augmenter la taille ... Vous pourriez essayer de les compresser mais vous ne gagnerez pas beaucoup puisque les fichiers musicaux sont déjà fortement compressés ... –
@ Vinayak-Bevinakatti, si vous vous inquiétez de la taille du fichier APK, il se peut que vous puissiez télécharger ces fichiers depuis un serveur lorsque votre application est exécutée pour la première fois. – Rajeev