0

我需要将视频下载到文件而不将其存储在设备上,只下载到内存中,这样我就可以在不需要许可的情况下共享它:

    lateinit var videoFile: InputStream // or what ever type it is suppose to be!

var videoFileUrl = "https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4"
    
    // download the video to videoFile
    
    val sharingIntent = Intent(Intent.ACTION_SEND)
    sharingIntent.type = "video/mp4"
    sharingIntent.putExtra(Intent.EXTRA_STREAM, videoFile)
    context.startActivity(Intent.createChooser(sharingIntent,"Share Video"))

我见过其他应用程序这样做,所以我知道不需要许可。请帮忙!

4

2 回答 2

0
  • 将文件存储在缓存中不需要存储权限
  • youtube-dl它是任何允许从 YouTube/fb 下载的应用程序的后端......
于 2021-07-05T23:01:42.817 回答
0

我需要将视频下载到文件而不将其存储在设备上

根据定义,这是不可能的。文件正在“将其存储在设备上”。对于每个主要操作系统都是如此。

所以我可以在不需要许可的情况下分享它

您可以在没有权限的情况下将您喜欢的任何文件写入设备上的特定位置。这些地方是通过方法来识别的Context,例如getFilesDir()getCacheDir()。请参阅文档

您可以使用自己喜欢的 HTTP 客户端(例如 OkHttp )下载到这些位置。

然后,您可以使用FileProvider.从您选择的位置共享文件。请参阅文档

此外,当您共享时,请使用具体的 MIME 类型,而不是通配符,如您的示例 ( video/*)。共享的是您的内容,因此您的工作是指定它是什么类型的内容。

于 2021-07-05T23:04:46.363 回答