Скачать файл ioni c 3 mp4 с firebase не на устройстве android - PullRequest
1 голос
/ 08 января 2020

Я пытаюсь загрузить файл mp4 на мое устройство на android. Я использую плагин для переноса файлов ioni c, чтобы загрузить файл, используя его URL-адрес для загрузки из firebase, и я использую плагин для фотогалереи ioni c, чтобы сохранить файл с его локального URL в мою галерею. я могу видеть, что файл загружен в мою папку галереи, однако, когда я пытаюсь воспроизвести его, мое устройство говорит, что "произошла неизвестная ошибка". Я могу нормально загружать файлы изображений (jpg) и видеть их отображение.


  async downloadVideForAndroid(url: string, fileName:string, fileMeme:string){
    try {
      if(
        url.includes('.mp4')
      ){
        console.log('Downloading mp4 ' + url);
        let downloadedMp4:any = await this.downLoadVideoMp4(url,fileName,fileMeme);
        let video: any = await this.saveVideoForAndroid(downloadedMp4);
        console.log('Saved video ' + video);
        return video;
      } else if(
        url.includes('.mov')
      ) {
        let downloadedMov:any = await this.downLoadVideoFileForMov(url,fileName,fileMeme);
        let convertedMp4Url: string = await this.photosProvider.convertMovToMp4(downloadedMov,fileName);
        let video: any = await this.saveVideoForAndroid(convertedMp4Url);
        console.log('Saved video ' + video);
        return video;
      }
    } catch (error) {
      console.log('Error with video download for android ' + error);
      return error;
    }
  }

  async downLoadVideoMp4(url: string, fileName:string, fileMeme:string):Promise<any>{
    try {
      const fileTransfer: FileTransferObject = this.fileTransfer.create();
      let entry: any = await fileTransfer.download(url , this.file.dataDirectory + fileName + fileMeme,true);
      console.log('download complete: ' + entry.toURL());
      return entry.toURL()
    } catch(error) {
      console.log('Error downloading file ' + error);
      return error;
    }
  }

  async saveVideoForAndroid(url:string):Promise<void>{
    await this.photoLibrary.requestAuthorization();
    return this.photoLibrary.saveVideo(
      url,
      'PicDrip'
    );
  }

  async saveImage(url:string):Promise<LibraryItem>{
    await this.photoLibrary.requestAuthorization();
    return this.photoLibrary.saveImage(
      url + '&ext=.jpg',
      'PicDrip'
    );
  };
...