[英]Hide “Can't play this video.” Alert for Xamarin Android VideoView Player
[英]Play video from emulator sd card on VideoView - Android (Xamarin)
我试图在VideoView上显示来自模拟器的mp4视频,并最终使用thumbnailUtils显示视频的缩略图,但出现“无法播放此视频”。 我假设路径错误,因为我可以使用以下方法播放Assets文件夹中的视频:
Android.Net.Uri vid = Android.Net.Uri.Parse("android.resource://" + PackageName + "/" + Resource.Drawable.SampleVideo1)
使用设备监视器,我可以看到我的视频在/data/media/0/SampleVideo1.mp4上,即使我将视频拖放到Genymotion上时也说该文件已复制到sdcard / Download上。 从其他线程,我看到人们给出了这样的路径:
static string path = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
string file = System.IO.Path.Combine(path.ToString(), "SampleVideo1.mp4");
我也尝试过这种方式:
var vidPath = "/data/media/0/SampleVideo1.mp4";
videoview.SetVideoPath(vidPath);
我在做错什么,并且因为我知道我的视频在/ data / media / 0 /上,所以这是设置路径的正确方法吗?
我在做错什么,并且因为我知道我的视频在/ data / media / 0 /上,所以这是设置路径的正确方法吗?
您的文件路径有可能是错误的,从您认为我的文件已保存在外部存储(SD卡)中的代码来看,那么文件路径应如下所示:
/storage/0/Movies/your file
但是您的文件路径是/ data / media / 0 /,它是内部存储Environment.DataDirectory
,并且您的应用没有权限在系统媒体下读写文件,我建议将文件路径更改为外部存储Environment.ExternalStorageDirectory
或应用程序的本地数据,例如到FilesDir
。
并举例说明如下:
var filename = "one.mp4";
var path = System.IO.Path.Combine(Environment.ExternalStorageDirectory.AbsoluteFile.ToString(), filename);
videoView.SetVideoPath(path);
videoView.Start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.