如何在安卓中将音频/视频文件存储到SQLite数据库中?

8

我是一个开发新手,通过将图像转换为字节数组并将其存储到SQLite数据库中的BLOB字段(请查看下面的代码)成功地将图像存储到数据库中。但是,我不知道如何将音频/视频存储到数据库中,请有人帮帮我,谢谢...

 public void getImage(View view){
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.setType("image/* video/*");
    startActivityForResult(Intent.createChooser(intent, "select picture"), 1);

}

public void onActivityResult(int requestCode, int resultCode, Intent data){
    if(resultCode == RESULT_OK){
        Uri imageUri = data.getData();
        String imagePath = getPath(imageUri);

        image1.setVisibility(View.VISIBLE);

        image1.setImageURI(imageUri);
        Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
        Toast.makeText(getApplicationContext(), ""+bitmap, Toast.LENGTH_SHORT).show();
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
        img = byteArrayOutputStream.toByteArray();
    }
}

 public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

public void saveImage(View v){

    imageDatabase = new ImageDatabase(this);

    imageDatabase.insert("first",img);

    Toast.makeText(getApplicationContext(), ""+imageDatabase.numberOfRows(),Toast.LENGTH_LONG).show();
}

在上面的代码中,我从SD卡中获取图像并在ImageView中显示,并将其存储到数据库中。
1个回答

2

将媒体文件存储在内部/外部存储中,并将其路径存储在数据库中。

请参阅保存文件


1
请勿将链接作为答案发布。将来链接可能会更改,这将使此答案无用。 - Prerak Sola
你说得没错,但我真的无法做得更好。我所能做的就是抑制这个句子。 - Renaud Favier
Renaud,谢谢您的回复,您能否通过发送任何示例代码来帮助我解决这个问题? - chethankumar
音频/视频文件位于哪里?如何获取它们?使用像您图像示例中的选择器吗? - Renaud Favier
音频文件位于sdcard中,可以通过选择器或提供音频文件路径的方式进行访问(最好使用选择器)。 - chethankumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接