diff --git a/Assets/Scripts/Export Video/ExportVideo.cs b/Assets/Scripts/Export Video/ExportVideo.cs index b521b5c..900ec97 100644 --- a/Assets/Scripts/Export Video/ExportVideo.cs +++ b/Assets/Scripts/Export Video/ExportVideo.cs @@ -82,15 +82,16 @@ public class ExportVideo : MonoBehaviour { { PlayerLogger.Log("ExportVideo", "OnClickExport", "Starting Export..."); - /* Aqui é o começo do processo de Exportar vídeo. Antes do processo realmente começar, deve-se checar se o app tem permissões para escrever - * no aparelho. Deve-se então trocar essa parte do código por uma abordagem iOS. NÃO ESQUECER DO CALLBACK PERMITTED. Caso contrário não - * será direcionado para próxima etapa do processo.*/ - - + /* Aqui é o começo do processo de Exportar vídeo. Antes do processo realmente começar, deve-se checar se o app tem permissões para escrever + * no aparelho. Deve-se então trocar essa parte do código por uma abordagem iOS. NÃO ESQUECER DO CALLBACK PERMITTED. Caso contrário não + * será direcionado para próxima etapa do processo.*/ + + /* NoodlePermissionGranter.PermissionRequestCallback = Permitted; NoodlePermissionGranter.GrantPermission(NoodlePermissionGranter.NoodleAndroidPermission.WRITE_EXTERNAL_STORAGE); */ + Permitted(true); } diff --git a/Assets/Scripts/Export Video/MediaShareIOS.cs b/Assets/Scripts/Export Video/MediaShareIOS.cs index d68c6af..cb11e54 100644 --- a/Assets/Scripts/Export Video/MediaShareIOS.cs +++ b/Assets/Scripts/Export Video/MediaShareIOS.cs @@ -18,20 +18,25 @@ using UnityEngine; using System.Collections; using System; using LAViD.Unity.Utils; +using System.IO; public class MediaShareIOS : MonoBehaviour { - private string MediaType = "video/*"; - private static string destination = ""; - private string VlibrasFolder = "DCIM/VLibras"; + private string MediaType = "video/*"; + private static string path; + private string VlibrasFolder = "VLibras"; private string Filen = "VLibrasVideo_"; - private static string FilePath = ""; + private static string FilePath = ""; /*Makes sure that Vlibras Folder gets created and write the video bytes in it.*/ + public void Awake() + { + path = Path.Combine(Application.persistentDataPath, VlibrasFolder); + } public IEnumerator WriteOnIOS(byte[] videoContent, int bytes,string CurrentTime, Action finishWriting, Action errorWriting) { @@ -42,6 +47,46 @@ public class MediaShareIOS : MonoBehaviour * chamado em caso de sucesso na escrita do vídeo, o segundo em caso de algum erro.*/ /*É necessário que o arquivo seja salvo numa pasta própria do Vlibras de maneira que o usuário iOS possa visualizar o vídeo na galeria*/ + + + + /* Checking if folder Vlibras exists*/ + + DirectoryInfo dir = new DirectoryInfo(path); + if (!dir.Exists) + { + dir.Create(); + } + + try + { + FileStream SourceStream = new FileStream(Path.Combine(path, FilePath), FileMode.OpenOrCreate); + + if (SourceStream.CanWrite) + { + SourceStream.Write(videoContent, 0, bytes); + SourceStream.Close(); + finishWriting(); + + yield break; + + } + else + { + // new AndroidToast().showToast("Erro ao salvar vídeo.", "LONG"); + errorWriting(); + } + + + } + catch (Exception e) + { + PlayerLogger.Log("MediaShareAndroid", "WriteOnAndroid", "Message: " + e.Message); + PlayerLogger.Log("MediaShareAndroid", "WriteOnAndroid", "Message: " + e.StackTrace); + // new AndroidToast().showToast("Você precisa dá permissão ao aplicativo", "LONG"); + + errorWriting(); + } yield break; -- libgit2 0.21.2