我正在构建一个应用程序,允许用户通过我的网络前端上传他们创建的多媒体文件(音频、视频、图形),然后其他用户可以使用我的移动应用程序将文件流式传输/下载到他们的手机上。我正在用react native构建移动应用程序。问题出在安卓平台上——下载文件时,它们会显示在下载文件夹中,这意味着它们可以从其他应用程序中复制、移动和打开。
由于文件内容受版权保护,我需要找到一种方法来
- 阻止这些文件列在下载文件夹中
和/或
- 阻止其他应用程序打开它们
像Spotify和Netflix这样的应用程序能够做到这一点(例如,如果你从Spotify下载播放列表,你就无法在手机上的其他地方看到它们)。我相信其中涉及某种加密/解密方案。但我对这方面的了解还不够。如果能对如何做到这一点有任何见解,我将不胜感激。
正如Luke所说,没有100%的保护,但通常的方法是加密文件,并使用DRM系统来管理密钥从服务器到客户端Android设备的安全转换。
安卓设备(通常)内置了宽视频DRM,这可能是最常用的DRM,但该系统也支持其他DRM,设备供应商可能会添加不同的DRM。
如果您准备接受一种不太安全的加密,但可能足以满足您的需求,那么MPEG DASH包括ExoPlayer支持的"clearkey"选项。如果你真的这样做了,值得查看最新的ExoPlayer状态,因为这个功能目前正在开发中:
- https://github.com/google/ExoPlayer/issues/3178