假设您要使用android.media.MediaPlayer来完成任务.
然后查看MediaPlayer.setDataSource您具有哪些选项:
>字符串路径(文件)
> Uri uri(http://或content://方案)
> FileDescriptor fd
1)Java File对您没有帮助.
2)具有http://的Uri是您提到的localhost上的流服务器.我测试了在我的应用程序中播放此类文件并使用适用于Android的WireShark捕获网络流量的情况,但未捕获任何内容,可能是因为无法捕获本地主机上的流量.因此,这对于通过本地http服务器流式传输来说足够安全.
3)具有content://方案的Uri从ContentProvider获取数据,ContentProvider可能是您自己的未导出提供程序,在其中您实现openAssetFile,并使用ParcelFileDescriptor.createPipe()和一个线程,在其中读取/解密数据并将其写入到达您在openAssetFile上返回的AssetFileDescriptor的管道.
这也是安全的选项,因为不会导出ContentProvider.
因此,您可以决定2)或3)中的哪一个更容易实现.