C# Can';不要播放这个视频Xamarin.Android

C# Can';不要播放这个视频Xamarin.Android,c#,xamarin.android,mediacontroller,C#,Xamarin.android,Mediacontroller,我需要在VideoView上播放SD卡上的视频,并且总是收到“无法播放此视频消息”。我正在物理设备上测试。该文件位于外部存储器中,可以通过内置手机应用程序播放,不会出现任何问题 我以前读过一些主题,并尝试更改文件格式和分辨率,但没有效果 第二个猜测是文件的路径,因此尝试使用Android.OS.Environment.ExternalStorageDirectory.AbsolutePath,在许多变体中多次更改它,创建文件变量并从file.path获取路径 得到了TextView,我每次都在那

我需要在
VideoView
上播放SD卡上的视频,并且总是收到“无法播放此视频消息”。我正在物理设备上测试。该文件位于外部存储器中,可以通过内置手机应用程序播放,不会出现任何问题

我以前读过一些主题,并尝试更改文件格式和分辨率,但没有效果

第二个猜测是文件的路径,因此尝试使用
Android.OS.Environment.ExternalStorageDirectory.AbsolutePath
,在许多变体中多次更改它,创建文件变量并从
file.path
获取路径

得到了
TextView
,我每次都在那里放置路径,而且总是正确的

我不知道为什么它不起作用

代码:

Java.IO.File file = new Java.IO.File (Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/myimage/", "video.mp4");

tView.Text = file.Path;

MediaController mediaController = new MediaController(context: this);
vView.SetMediaController(mediaController);
mediaController.SetAnchorView(vView);
vView.SetVideoPath(file.Path);
vView.Start();
"/storage/emulated/0/myimage/video.mp4"
文件路径
值:

Java.IO.File file = new Java.IO.File (Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/myimage/", "video.mp4");

tView.Text = file.Path;

MediaController mediaController = new MediaController(context: this);
vView.SetMediaController(mediaController);
mediaController.SetAnchorView(vView);
vView.SetVideoPath(file.Path);
vView.Start();
"/storage/emulated/0/myimage/video.mp4"
编辑:我在资源放置文件中创建了“原始”文件夹,然后使用以下路径:

vView.SetVideoPath("android.resource://" + PackageName + "/" + Resource.Raw.video);

它可以工作,但如果有人知道如何获得SD卡上文件夹的正确路径?

我终于找到了答案。问题是我的手机挂载卡位于path/storage/xxxx xxxx/我的研究表明dir的名称来自卷序列号(android自动挂载卡的位置),ExternalStorageDirectory指的是每个android设备中的其他位置。有时是内部的,有时是usb大容量存储

无论如何,未找到任何返回路径的方法,因此创建了以下方法:

string GetCardMountPoint()
    {
        string[] listOfDirs = Directory.GetDirectories("/storage/");
        string path = null;

        foreach ( string dir in listOfDirs)
        {
            if(dir.Contains('-'))
            {
                path = dir;
            }
        }

        return path;

这不是一个复杂的解决方案,但它目前仍然有效。

试试这个:
var path=Android.OS.Environment.ExternalStorageDirectory.AbsolutePath+“/myimage/video.mp4”;vView.SetVideoPath(路径)
(无需创建
文件
)你可以看看这个:谢谢你的建议,但这些都没有帮助。你能试着把视频放在你的项目中并检查它是否工作吗?就像我在“编辑”中写的那样,它是这样工作的,但我需要它将文件从ftp下载到sdcard并循环播放它们。