gpt4 book ai didi

Android 10 如何在插入媒体时按当前时间更改 date_taken?

转载 作者:行者123 更新时间:2023-11-29 22:51:52 25 4
gpt4 key购买 nike

我将一个视频插入到媒体存储中,但在插入我的图库后排序错误,因为 date_taken 不是当前时间,系统使用在视频元数据中创建的时间。如何将 date_taken 更改为媒体存储或元数据中的当前时间?

ExifInterface 可以编辑元数据中的 date_created 但它只支持 JPEG 。

这是我用来插入视频的代码

        ContentValues contentvalues = new ContentValues();
contentvalues.put(MediaStore.Video.VideoColumns.TITLE, title);
contentvalues.put(MediaStore.Video.VideoColumns.DISPLAY_NAME, fileName);
contentvalues.put(MediaStore.Video.VideoColumns.DATE_TAKEN, System.currentTimeMillis());
contentvalues.put(MediaStore.Video.VideoColumns.DATE_ADDED, Long.valueOf(System.currentTimeMillis() / 1000));
contentvalues.put(MediaStore.Video.VideoColumns.DATE_MODIFIED, Long.valueOf(System.currentTimeMillis() / 1000));
contentvalues.put(MediaStore.Video.VideoColumns.MIME_TYPE, MIME_TYPE_VIDEO);
contentvalues.put(MediaStore.Video.VideoColumns.RELATIVE_PATH, EnvironmentWrappper.RELATIVE_PATH_VIDEO);
contentvalues.put(MediaStore.Video.VideoColumns.SIZE, outputFile.length());

long duration = 0;
List<Metadata> metadataList = VideoPreviewMetadataManager.loadMetaDataLite(outputPath);
if (metadataList != null && !metadataList.isEmpty()) {
for (Metadata metadata : metadataList) {
if (ZMediaMetadataRetriever.METADATA_KEY_DURATION.equals(metadata.getKey())) {
duration = Long.parseLong(metadata.getValue().toString());
}
}
}
contentvalues.put(MediaStore.Video.VideoColumns.DURATION, duration);
try {
Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentvalues);

FileLocalUriWrapper file = new FileLocalUriWrapper(outputPath);
OutputStream fos = resolver.openOutputStream(uri);
InputStream inputStream = file.getFileInputStream();
IOUtils.copyStream(inputStream, fos);
fos.close();
inputStream.close();

} catch (Exception ex) {
ex.printStackTrace();

}

最佳答案

因为我没有androidQ的真机,我用模拟器测试的结果,好像DATE_TAKEN这个属性在androidQ中没有作用,甚至很多时候都是NULL。

所以我之前在androidQ中根据DATA_TAKEN获取时间属性,之后根据ADD_DATE获取AndroidQ中的时间属性。


当然这只是我自己的经验,不同的设备,可能从api28升级到29的设备可能会保留在MediaStore中。

关于Android 10 如何在插入媒体时按当前时间更改 date_taken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815521/

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