gpt4 book ai didi

Android:存储在数据库中的缩略图返回空

转载 作者:行者123 更新时间:2023-11-30 02:16:15 26 4
gpt4 key购买 nike

我有一个 Db,其中以 ByteArray 形式存储了视频的路径及其缩略图。但是当我尝试从数据库中检索缩略图时,我总是得到空值。这是我用来检索拇指和路径的代码:

        db=openOrCreateDatabase("VideoPaths", Context.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS paths(path VARCHAR,thumbnail BLOB);");
Cursor c = db.rawQuery("SELECT path,thumbnail FROM paths",null);
int index = c.getColumnIndex("path");
int index2 = c.getColumnIndex("thumbnail");

c.moveToFirst();

if (c != null) {
// Loop through all Results
do {

String VideoPath = c.getString(index);
byte[] bytes = c.getBlob(index2);
Bitmap thumb = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);


pathList.add(VideoPath);
listRow.add(new VideoRow(VideoPath,thumb, "User", "Testing"));

} while (c.moveToNext());
}

您对如何解决此问题有任何想法吗?

P.S 视频路径检索工作正常。

编辑:这是填充表格的代码

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(filePath,
MediaStore.Images.Thumbnails.MINI_KIND);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
thumb.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] thumbnailBitmapBytes = stream.toByteArray();

db=openOrCreateDatabase("VideoPaths", Context.MODE_PRIVATE, null);
db.execSQL("INSERT INTO paths (path,thumbnail) values('" + serverPath + "','"+thumbnailBitmapBytes+"')");

最佳答案

首先,我不会通过连接字符串来构造您的INSERT 查询。看看 database.compileStatement(...) here .尝试这样做:

SQLiteStatement stmt = db.compileStatement("INSERT INTO paths (path, thumbnail) values (?, ?)");
stmt.bindString(1, serverPath);
stmt.bindBlob(2, thumbnailBitmapBytes);
long newRowId = stmt.executeInsert();

然后,当需要获取数据时,您可以使用已经共享的代码。

关于Android:存储在数据库中的缩略图返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29305243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com