public static byte[] PathToByte2(string path){ //byte[] pathData=null; Log.Debug ("ImageToByte", "Inicia path to byte"); Log.Debug ("ImageToByte", "Se crea el nuevo file"); var imgFile = new Java.IO.File(path); Log.Debug ("ImageToByte", "Se crea el nuevo stream"); var stream = new Java.IO.FileInputStream(imgFile); Log.Debug ("ImageToByte", "Se Crea el archivo Byte"); var bytes = new byte[imgFile.Length()]; Log.Debug ("ImageToByte", "Se hace el Stream Read"); stream.Read(bytes); stream.Close (); stream.Dispose (); return bytes; }
private async Task <string> SaveFileToFolder(Android.Net.Uri uri, string fileName) { Android.Net.Uri docUri = Android.Provider.DocumentsContract.BuildDocumentUriUsingTree(uri, Android.Provider.DocumentsContract.GetTreeDocumentId(uri)); string fileFolder = SAFFileUtil.GetPath(this, docUri); Java.IO.File destFolder = new Java.IO.File(fileFolder); Java.IO.File file = new Java.IO.File(destFolder, fileName); Java.IO.File tempFile = new Java.IO.File(TempFilePath); destFolder.Mkdirs(); if (!file.Exists()) { file.CreateNewFile(); } Java.IO.FileInputStream fileInput = new Java.IO.FileInputStream(tempFile); Java.IO.FileOutputStream fileOutput = new Java.IO.FileOutputStream(file, false); while (true) { byte[] data = new byte[1024]; int read = await fileInput.ReadAsync(data, 0, data.Length); if (read <= 0) { break; } await fileOutput.WriteAsync(data, 0, read); } fileInput.Close(); fileOutput.Close(); return(file.AbsolutePath); }
private void ExtractVideoPickedFromGallery(Intent data) { try { Android.Net.Uri selectedUri = data.Data; string mimeType = "video"; PickedMediaFromGallery result = new PickedMediaFromGallery(); if (mimeType.StartsWith("video")) { string filePath = MediaUtils.GetFileFullPathAlternativeVideo(data.Data, this); Java.IO.File videoFile = new Java.IO.File(filePath); Java.IO.FileInputStream videoFileInputStream = new Java.IO.FileInputStream(videoFile); byte[] videoFileBytes = new byte[videoFile.Length()]; videoFileInputStream.Read(videoFileBytes); videoFileInputStream.Close(); videoFileInputStream.Dispose(); System.IO.Stream thumbnailStream = DependencyService.Get <IPickMediaDependencyService>().GetThumbnail(filePath); byte[] thumbnailBytes; thumbnailStream.Position = 0; using (System.IO.BinaryReader reader = new System.IO.BinaryReader(thumbnailStream)) { thumbnailBytes = reader.ReadBytes((int)thumbnailStream.Length); } result = new PickedMediaFromGallery() { Completion = true, DataBase64 = Android.Util.Base64.EncodeToString(videoFileBytes, Android.Util.Base64Flags.Default), DataThumbnailBase64 = Convert.ToBase64String(thumbnailBytes), FilePath = filePath, MimeType = ProfileMediaService.VIDEO_MEDIA_TYPE }; } else { Debugger.Break(); throw new InvalidOperationException(); } PickVideoTaskCompletion.SetResult(result); } catch (Exception exc) { Debugger.Break(); PickVideoTaskCompletion.SetResult(new PickedMediaFromGallery() { Exception = exc, ErrorMessage = _EXTRACTION_MEDIA_MEDIA_PICK_ERROR }); } }
private async Task SetMediaPlayerDataSourceUsingFileDescriptor() { Java.IO.File file = new Java.IO.File(CurrentFile.Url); Java.IO.FileInputStream inputStream = new Java.IO.FileInputStream(file); _mediaPlayer?.Reset(); var dataSourceAsync = _mediaPlayer?.SetDataSourceAsync(inputStream.FD); if (dataSourceAsync != null) await dataSourceAsync; inputStream.Close(); }
private void Release() { Scheduler.UnregisterExtractor(this); //to avoid receiving any more event from the scheduler MediaDecoder?.Stop(); MediaDecoder?.Release(); MediaDecoder = null; mediaExtractor?.Release(); mediaExtractor = null; inputFile = null; MediaMetadata = null; MediaDuration = TimeSpan.Zero; inputFileDescriptor?.Close(); inputFileDescriptor = null; isInitialized = false; }
private void ExtractVideoTakedFromCamera(Intent data) { try { Android.Net.Uri selectedUri = data.Data; string filePath = MediaUtils.GetFileFullPathAlternativeVideo(data.Data, this); Java.IO.File videoFile = new Java.IO.File(filePath); Java.IO.FileInputStream videoFileInputStream = new Java.IO.FileInputStream(videoFile); byte[] videoFileBytes = new byte[videoFile.Length()]; videoFileInputStream.Read(videoFileBytes); videoFileInputStream.Close(); videoFileInputStream.Dispose(); System.IO.Stream thumbnailStream = DependencyService.Get <IPickMediaDependencyService>().GetThumbnail(filePath); byte[] thumbnailBytes; thumbnailStream.Position = 0; using (System.IO.BinaryReader reader = new System.IO.BinaryReader(thumbnailStream)) { thumbnailBytes = reader.ReadBytes((int)thumbnailStream.Length); } CompleteActionTakeVideoOrImage(new PickedMediaFromGallery() { Completion = true, DataBase64 = Android.Util.Base64.EncodeToString(videoFileBytes, Android.Util.Base64Flags.Default), DataThumbnailBase64 = Convert.ToBase64String(thumbnailBytes), FilePath = filePath, MimeType = ProfileMediaService.VIDEO_MEDIA_TYPE }); } catch (Exception exc) { CompleteActionTakeVideoOrImage(new PickedMediaFromGallery() { Exception = exc, ErrorMessage = _TAKE_VIDEO_OR_IMAGE_TAKED_VIDEO_HANDLING_ERROR }); } }
public static byte[] Retrieve(Context context, String name) { Java.IO.File cacheDir = context.CacheDir; Java.IO.File file = new Java.IO.File(cacheDir, name); if (!file.Exists()) { return(null); } byte[] data = new byte[(int)file.Length()]; Java.IO.FileInputStream stream = new Java.IO.FileInputStream(file); try { stream.Read(data); } finally { stream.Close(); } return(data); }
public static void SaveVideoToExternalStorage(string path) { Java.IO.File root = Android.OS.Environment.ExternalStorageDirectory; Java.IO.File appDir = new Java.IO.File(root, "Ta7meelVideos"); if (!appDir.Exists()) { if (!appDir.Mkdir()) { return; } } Java.IO.File videoDownloadedFile = new Java.IO.File(path); Java.IO.File file = new Java.IO.File(appDir, videoDownloadedFile.Name); if (!file.Exists()) { try { Java.IO.FileInputStream videoToCopy = new Java.IO.FileInputStream(videoDownloadedFile); Java.IO.FileOutputStream copyOfVideo = new Java.IO.FileOutputStream(file); byte[] buf = new byte[1024]; int len; while ((len = videoToCopy.Read(buf)) > 0) { copyOfVideo.Write(buf, 0, len); } copyOfVideo.Flush(); copyOfVideo.Close(); videoToCopy.Close(); String[] Pathes = new String[] { file.Path }; MediaScannerConnection.ScanFile(Forms.Context, Pathes, null, null); } catch (Exception e) { e.GetType(); } } }
private async Task SetMediaPlayerDataSourceUsingFileDescriptor() { Java.IO.File file = new Java.IO.File(CurrentFile.Url); Java.IO.FileInputStream inputStream = new Java.IO.FileInputStream(file); _mediaPlayer?.Reset(); var dataSourceAsync = _mediaPlayer?.SetDataSourceAsync(inputStream.FD); if (dataSourceAsync != null) await dataSourceAsync; inputStream.Close(); }
private void ExtractMediaPickedFromGallery(Intent data) { try { Android.Net.Uri selectedUri = data.Data; String[] columns = { MediaStore.Images.Media.InterfaceConsts.Data, MediaStore.Images.Media.InterfaceConsts.MimeType }; ICursor cursor = ContentResolver.Query(selectedUri, columns, null, null, null); cursor.MoveToFirst(); int pathColumnIndex = cursor.GetColumnIndex(columns[0]); int mimeTypeColumnIndex = cursor.GetColumnIndex(columns[1]); string mimeType = cursor.GetString(mimeTypeColumnIndex); cursor.Close(); PickedMediaFromGallery result = null; if (mimeType.StartsWith("image")) { Android.Graphics.Bitmap bitmap = MediaUtils.GetScaledBitmap( data.Data, MediaUtils.IMAGE_WIDTH_RESTRICTION, MediaUtils.IMAGE_HEIGHT_RESTRICTION, this); if (bitmap == null) { bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, data.Data); } byte[] bytes; using (MemoryStream memoryStream = new MemoryStream()) { bitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Jpeg, 100, memoryStream); bytes = memoryStream.GetBuffer(); } result = new PickedMediaFromGallery() { DataBase64 = Android.Util.Base64.EncodeToString(bytes, Android.Util.Base64Flags.Default), Completion = true, DataThumbnailBase64 = Android.Util.Base64.EncodeToString(bytes, Android.Util.Base64Flags.Default), MimeType = ProfileMediaService.IMAGE_MEDIA_TYPE }; } else if (mimeType.StartsWith("video")) { string filePath = MediaUtils.GetFileFullPathAlternativeVideo(data.Data, this); Java.IO.File videoFile = new Java.IO.File(filePath); Java.IO.FileInputStream videoFileInputStream = new Java.IO.FileInputStream(videoFile); byte[] videoFileBytes = new byte[videoFile.Length()]; videoFileInputStream.Read(videoFileBytes); videoFileInputStream.Close(); videoFileInputStream.Dispose(); System.IO.Stream thumbnailStream = DependencyService.Get <IPickMediaDependencyService>().GetThumbnail(filePath); byte[] thumbnailBytes; thumbnailStream.Position = 0; using (System.IO.BinaryReader reader = new System.IO.BinaryReader(thumbnailStream)) { thumbnailBytes = reader.ReadBytes((int)thumbnailStream.Length); } result = new PickedMediaFromGallery() { Completion = true, DataBase64 = Android.Util.Base64.EncodeToString(videoFileBytes, Android.Util.Base64Flags.Default), DataThumbnailBase64 = Convert.ToBase64String(thumbnailBytes), FilePath = filePath, MimeType = ProfileMediaService.VIDEO_MEDIA_TYPE }; } else { Debugger.Break(); throw new InvalidOperationException(); } PickMediaTaskCompletion.SetResult(result); } catch (Exception exc) { Debugger.Break(); PickMediaTaskCompletion.SetResult(new PickedMediaFromGallery() { Exception = exc, ErrorMessage = _EXTRACTION_MEDIA_MEDIA_PICK_ERROR }); } }