/// <summary> /// поиск по имени файла /// </summary> /// <param name="fileName"> название файла</param> /// <returns>преобразованный файл</returns> internal static MediaManager.Library.IMediaItem GetAudio(string fileName) { var filesPath = Xamarin.Forms.DependencyService.Get <IFileSystem>().GetExternalDirectory(typeFiles.Audio); string findFilePath; if (File.Exists(findFilePath = Path.Combine(filesPath, fileName))) { MediaManager.Library.IMediaItem audio = CrossMediaManager.Current.Extractor.CreateMediaItem(new FileInfo(findFilePath)).Result; return(audio); } throw new FileNotFoundException(); }
/// <summary> /// Загрузить файлы во внешний кэш приложения /// </summary> /// <param name="files">файлы, которые необходимо загрузить</param> internal static void LoadToCache(params FileResult[] files) { FileInfo file; foreach (var item in files) { file = new FileInfo(item.FullPath); var filesPath = Path.Combine(Xamarin.Forms.DependencyService.Get <IFileSystem>().GetExternalDirectory(typeFiles.Audio), file.Name); if (!File.Exists(filesPath)) { File.WriteAllBytes(filesPath, File.ReadAllBytes(file.FullName)); } MediaManager.Library.IMediaItem mediaItem = CrossMediaManager.Current.Extractor.CreateMediaItem(file).Result; if (App.Database.SelectAllFromTable <Audio>().FirstOrDefault(audio => audio.UriFile == mediaItem.FileName) == null) // если отсутсвует в базе данных { Audio audio = new Audio() { NameAudio = mediaItem.DisplayTitle, Subtitle = mediaItem.DisplaySubtitle, UriFile = mediaItem.FileName, UriImage = "Resources/drawable/examle2.png" }; // изменить App.Database.InsertIntoTable <Audio>(audio); } } }