React native 在App react native下载私人视频

React native 在App react native下载私人视频,react-native,react-native-video,react-native-fs,React Native,React Native Video,React Native Fs,我试图在react native中实现一些功能: 我有一个在react native video component中显示的视频url,我怎么能给一个按钮在手机上下载相同的视频,但它不应该出现在gallery中。 此外,如果视频是私有的,可以在何处传递标题以及如何传递?可以有多种方法 我希望你对你的视频播放器有一个想法,下载选项取决于你的服务器和网站 您可以更改下载视频的文件扩展名,如my_video.notMP4。因此视频将不会显示在多媒体资料中,因为它现在未被检测为视频文件 隐藏下载视频文件

我试图在react native中实现一些功能: 我有一个在react native video component中显示的视频url,我怎么能给一个按钮在手机上下载相同的视频,但它不应该出现在gallery中。
此外,如果视频是私有的,可以在何处传递标题以及如何传递?

可以有多种方法

我希望你对你的视频播放器有一个想法,下载选项取决于你的服务器和网站

  • 您可以更改下载视频的文件扩展名,如my_video.notMP4。因此视频将不会显示在多媒体资料中,因为它现在未被检测为视频文件

  • 隐藏下载视频文件的文件夹,在文件夹名称之前添加一个点(.)可以在Android/Unix中隐藏文件夹,视频将从Gallery中隐藏。示例.我的视频文件夹

  • 为了更安全,您可以加密视频并将其制作成只有您的播放器才能播放的自定义块。但您可能需要制作或找到这样的视频播放器


  • 我无法理解标题部分,请解释。

    如何下载任何文件?

    要下载任何像视频、img这样的文件,您首先需要获得读写手机内部/外部存储器的权限,然后需要一个本机模块,可以将文件从服务器下载到手机的本地文件夹

    有两个最著名的用于下载文件的库

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

    现在,让我们来看看您不希望通过gallery向用户提供的部分

    为此,我建议使用
    react native fetchblob
    ,因为它具有内置的意图操作和视图。 您可以下载具有任意随机名称的视频文件,如
    1234CACHE
    任意随机名称,但不带任何扩展名,特别是不要为其提供像video.mp4这样的扩展名,因为gallery会检测.mp4文件,所以不要为其提供任何扩展名,该文件在任何gallery中都不可用

    现在如何隐藏文件? react native fetch blob允许我们将文件保存到不公开的目录中,我的意思是用户无法访问这些目录,这些目录仅用于保存应用程序的数据,以便您可以将视频文件保存在其中一个目录中

    现在,在完成下载后,您可以打开您的文件

    例如:-

    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
    这是视频文件url,但如果您有类似
    https://SomeURL.com/video
    它不是一个视频文件,而是一个显示该视频文件的网页,因此您无法真正从网页下载该特定视频

    这可以有多种方法。我想知道的主要部分是“如何在有视频url的情况下下载任何视频”,同时在youtube上显示一个下载按钮,您可以在那里下载视频。我编辑了这个问题,很抱歉误解了!视频下载取决于网站兄弟,如果你能指定网站名称,我会调查的。你可以试试,我假设你有自己的服务器来承载视频,从大多数网站下载视频是违法的。在实施之前请注意这一点。我有自己的服务器来承载视频。感谢您的解释,我已经熟悉视频url和网页之间的区别。您能否指导我使用react native fs或fetch blob下载视频的过程。