选择Android上的视频
我在Android上选择照片时遇到问题。我正在使用下面的代码启动活动选择Android上的视频,android,video,xamarin,Android,Video,Xamarin,我在Android上选择照片时遇到问题。我正在使用下面的代码启动活动 var intent = new Intent (); intent.SetType ("video/*"); intent.SetAction (Intent.ActionGetContent); intent.PutExtra (MediaStore.ExtraVideoQuality, 0); intent.PutExtra (MediaStore.ExtraDurationLimit, Globals.VideoMax
var intent = new Intent ();
intent.SetType ("video/*");
intent.SetAction (Intent.ActionGetContent);
intent.PutExtra (MediaStore.ExtraVideoQuality, 0);
intent.PutExtra (MediaStore.ExtraDurationLimit, Globals.VideoMaxDuration);
this.StartActivityForResult (Intent.CreateChooser (intent, "Select video"), 200);
然后在OnActivityResult回调中,我使用以下代码获取数据的URI
if (resultCode == Result.Ok && data.Data != null)
{
String[] proj = { MediaStore.Images.Media.InterfaceConsts.Data };
ICursor cursor = this.ContentResolver.Query(data.Data, proj, null, null, null);
int colIndex = cursor.GetColumnIndexOrThrow (MediaStore.Video.Media.InterfaceConsts.Data);
cursor.MoveToFirst ();
vid = cursor.GetString(colIndex);
// do stuff with vid
}
这在从gallery选项选择视频时非常有效,但当我尝试从选择器的最近或下载部分选择视频时,视频总是为空
有人知道如何从视频选择器获取视频数据吗?另外,代码是用C编写的,因为这是一个Monotouch Xamarin应用程序,但我已经在原生Android中创建了一个测试应用程序,并且有完全相同的问题
谢谢 基本上这段代码来自这篇文章。有关更多信息或如何从uri?获取路径,请参阅此 要检查它是否是下载文档,您必须使用以下代码
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is DownloadsProvider.
*/
public static boolean isDownloadsDocument(Uri uri) {
return "com.android.providers.downloads.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is MediaProvider.
*/
public static boolean isMediaDocument(Uri uri) {
return "com.android.providers.media.documents".equals(uri.getAuthority());
}
你检查过这个了吗@shreyashmashru这个链接很有魅力。请将此作为答案发布,我会将其标记为已接受答案。