如何将视频从 URI 保存到内部存储?



我正在尝试从 url/uri 保存视频,并将视频路径获取到设备中

我正在使用Xamarin.Forms,使用DependencyService来允许访问Android项目中的某些功能。

public string DownloadFile(string url)
{
string pathToNewFolder = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, folder);
Directory.CreateDirectory(pathToNewFolder);
try
{
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
string pathToNewFile = System.IO.Path.Combine(pathToNewFolder, System.IO.Path.GetFileName(url) + ".mp4");
webClient.DownloadFileAsync(new System.Uri(url), pathToNewFile);
}
catch (Exception ex)
{
if (OnFileDownloaded != null)
OnFileDownloaded.Invoke(this, new DownloadEventArgs(null,null,null,null,0));
}
return pathToNewFolder;
}

我下载了mp4格式的文件,但无法播放此视频

您可以使用软件包 Xam.Plugins.Android.VlcXamarin 来播放它

用法

LibVLCLibVLC mLibVLC = null;
MediaPlayer mMediaPlayer = null;
if(mLibVLC == null)
{
//Initialize VLC libs
mLibVLC = new LibVLCLibVLC(this);
mMediaPlayer = new MediaPlayer(mLibVLC);
}
//Create new media object
var m = new MediaLibVLC(mLibVLC, Android.Net.Uri.Parse( the filepath));
// Tell the media player to play the new Media.
mMediaPlayer.Media = m;
// Finally, play it!
mMediaPlayer.Play();

如果你想把文件保存到你的内部存储,你只需要修改你正在使用的这个基本路径:

string pathToNewFolder = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, folder);

您可以使用让您满意的System.Environment.SpecialFolder值之一来代替ExternalStorageDirectory

System.Environment.SpecialFolder    Path
ApplicationData                     INTERNAL_STORAGE/.config
Desktop                             INTERNAL_STORAGE/Desktop
LocalApplicationData                INTERNAL_STORAGE/.local/share
MyDocuments                         INTERNAL_STORAGE
MyMusic                             INTERNAL_STORAGE/Music
MyPictures                          INTERNAL_STORAGE/Pictures
MyVideos                            INTERNAL_STORAGE/Videos
Personal                            INTERNAL_STORAGE

哪里INTERNAL_STORAGE = /data/user/0/com.companyname/files

来源: https://learn.microsoft.com/en-us/xamarin/android/platform/files/

最新更新