【发布时间】:2015-03-29 18:11:27
【问题描述】:
我正在尝试获取存储在我的应用用户手机上的视频文件的元数据。我可以得到文件名、id、拍摄日期等等。但是,纬度和经度数据始终返回为 0.0。我一直在说这个:
developer.android.com/reference/android/provider/MediaStore.Video.VideoColumns.html
是的,我已经在我的设置中启用了使用位置。对于可以正常工作的图像,我有一个与此非常相似的功能。
public void getLocalVideoFiles(Context context) {
ContentResolver videoResolver = context.getContentResolver();
Uri videoUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String test = getRealPathFromURI(context, videoUri);
Cursor videoCursor = videoResolver.query(videoUri, null, null, null, null);
if(videoCursor!=null && videoCursor.moveToFirst()){
//get columns
int latColumn = videoCursor.getColumnIndex
(MediaStore.Video.Media.LATITUDE);
int lonColumn = videoCursor.getColumnIndex
(MediaStore.Video.Media.LONGITUDE);
do {
String thisLat = Double.toString(videoCursor.getDouble(latColumn));
String thisLon = Double.toString(videoCursor.getDouble(lonColumn));
Log.d("video Latitude",thisLat);
Log.d("video Longitude",thisLon);
}
while (videoCursor.moveToNext());
}
return localClips;
}
此处描述的方法:Geotagging a captured video 产生类似的结果(METADATA_KEY_LOCATION 列中的空值)。
所以,我的问题是: 内置的 Android 视频工具在创建视频时会记录位置数据吗?似乎答案是否定的,但我不明白如果是这种情况,为什么会有位置数据列。如果不是这种情况,我如何访问视频位置数据?我需要已经拍摄的视频文件的位置。
提前致谢!
【问题讨论】:
-
几个后续问题: 1.你确定你对数据库的查询是正确的吗? (你得到一个实际的光标吗?你能从中得到其他值吗?)。 2、你确定你查询的视频确实有信息吗?您是否尝试查询您知道具有该元数据的视频?
-
是的。我从示例代码中删除了额外的查询,以使问题更清晰。但是,这种方法确实成功地返回了文件名和创建时间戳。 lat,lon 列只有 0,0。
标签: android video geolocation