Как скачать любой файл?
Хорошо для скачивания любого файла, например видео, img сначала вам нужно разрешение на чтение и запись во внутреннюю / внешнюю память телефона, а после этого вам нужно встроенный модуль, который может загружать файлы с сервера в локальные папки телефона.
Существуют две наиболее известные библиотеки для загрузки файлов
https://www.npmjs.com/package/react-native-fs
https://www.npmjs.com/package/react-native-fetch-blob
Теперь вы можете следить за их документацией для загрузки файлов, таких как видео, изображения или любые другие Вы хотите на телефон вашего пользователя.
Теперь давайте перейдем к той части, которую вы не хотите, чтобы она была доступна пользователю через галерею.
Для этого я предлагаю использовать react-native-fetchblob
, поскольку она имеет встроенные намеренные действия и представления. Вы можете загрузить видеофайл с любым случайным именем, например 1234CACHE
, с любым произвольным именем без расширения к нему, особенно не назначайте ему расширение, например video.mp4, поскольку галерея обнаруживает файлы .mp4, поэтому не дает ему никакого расширения, а файл не будет быть доступным в любой галерее.
Теперь, как скрыть файл? response-native-fetch-blob позволяет нам сохранять файлы в каталогах, которые не являются общедоступными, я имею в виду, что пользователь не может получить доступ к этим каталогам, и эти каталоги используются только для сохранения данных приложения, поэтому вы можете сохранить свой видеофайл в одном из этих каталогов.
Теперь, после завершения загрузки, вы можете открыть файл с помощью Intent.
Например: -
const VIDEO_PATH = res.path() //the path where your downloaded video is saved, you will actually receive this in the response of download function.
const MIME_TYPE = "video/mp4"
//Now finally call the intent with video mime so the video will be opened in user's media player, or if you want your own media player you can use any library for that.
android.actionViewIntent(VIDEO_PATH , MIME_TYPE)
Примечание. Вы можете загружать видео только при наличии URL-адрес пути к видеофайлу. Запрещается смешивать веб-URL с URL-адресом видеофайла. URL-адрес видеофайла имеет имя файла и расширение видео в конце URL-адреса. например, https://someURL.com/video.mp4
это URL-адрес видеофайла, но если у вас есть что-то вроде https://SomeURL.com/video
, то это не видеофайл, а веб-страница, отображающая этот видеофайл, так что вы не можете действительно загрузить указанное видео c с веб-страницы! ,