gpt4 book ai didi

react-native - 在应用内下载私有(private)视频 react 原生

转载 作者:行者123 更新时间:2023-12-04 02:39:51 26 4
gpt4 key购买 nike

我正在尝试在 native react 中实现一些东西:
我有一个视频网址,我在 react 原生视频组件中显示,我怎样才能提供一个按钮以在移动设备中下载相同的视频,但它不应该出现在画廊中。
此外,如果视频是私有(private)的,可以在哪里传递标题以及如何传递?

最佳答案

如何下载任何文件?

对于下载视频等任何文件,您首先需要读取和写入手机内部/外部存储的权限,然后您需要一个可以将文件从服务器下载到手机本地文件夹的 native 模块。

有两个最知名的文件下载库

  • https://www.npmjs.com/package/react-native-fs
  • https://www.npmjs.com/package/react-native-fetch-blob

  • 现在,您可以按照他们的文档将视频、图像或任何您想要的文件下载到用户的手机上。

    现在让我们来看看您不希望它通过画廊提供给用户的部分。

    为此,我建议使用 react-native-fetchblob因为它具有内置的意图操作和 View 。
    您可以下载任意名称的视频文件,例如 1234CACHE任何没有任何扩展名的随机名称,特别是不要给它像 video.mp4 这样的扩展名,因为画廊检测到 .mp4 文件,所以不要给它任何扩展名,并且该文件将不会在任何画廊中可用。

    现在如何隐藏文件?
    react-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,则只能下载视频,不得将 Web URL 与视频文件 URL 混合,视频文件 url 在 url 的末尾有文件名和视频扩展名。如 https://someURL.com/video.mp4这是视频文件的网址,但如果您有类似 https://SomeURL.com/video 的内容它不是视频文件,而是显示该视频文件的网页,因此您无法真正从网页下载该特定视频!

    关于react-native - 在应用内下载私有(private)视频 react 原生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59866172/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com