【发布时间】:2014-12-26 03:40:15
【问题描述】:
我创建了一个应用程序,客户端可以在其中记录少量对话并存储在外部存储中。如果需要,客户端必须能够传输文件。所以我将录制的文件存储在外部存储中。但客户不希望从应用程序外部(从 sd 卡)或音乐播放器播放文件。可能吗?请告诉我。使用内部存储是唯一的方法吗?
【问题讨论】:
标签: android-mediaplayer android-file android android-audiorecord
我创建了一个应用程序,客户端可以在其中记录少量对话并存储在外部存储中。如果需要,客户端必须能够传输文件。所以我将录制的文件存储在外部存储中。但客户不希望从应用程序外部(从 sd 卡)或音乐播放器播放文件。可能吗?请告诉我。使用内部存储是唯一的方法吗?
【问题讨论】:
标签: android-mediaplayer android-file android android-audiorecord
这不是一个编程问题,但是...
这里有2个选项,根据你的要求决定
1) 如果您希望记录不出现在任何播放器中 或多媒体应用程序,您有 2 个选项: A- 让存储文件夹名称以 . 开头。 (例如,.myrecords) 要么 B- 在名为 .nomedia 的文件夹中添加一个文件
但这不会保护记录,就好像有人安装了 sd 卡记录可以在任何设备/PC 上复制和播放
2)如果您想保护文件,您需要按照 Joey Chong 的建议对其进行加密 因此,一旦录制完成,文件就会被加密并存储在外部存储中 一旦用户进入播放屏幕并选择要播放的文件,应用程序将首先解密它,在一个新的(临时文件)中然后播放它,并在用户离开播放屏幕后删除临时文件。
-- 用于将记录导出到 PC 或其他设备, 您可以添加一个功能(可能是按钮)来导出所选记录,只需将所选文件解密到特定文件夹中,例如(/appfolder/exported/)然后用户可以复制它们或做任何事情...... 一旦导出目的结束,用户必须删除导出文件夹中的文件。 (也可能是一个按钮)清除导出
存储在内部不是一个好主意,尤其是音频/视频,因为它可能是大文件,并且某些设备没有非常大的内部存储。
这可能更像是一条评论,但它太长了
【讨论】:
您提到的内部存储是指您的应用程序内的私人位置吗?据我所知,即使您放入内部存储,媒体播放器仍然能够找到该文件,除非它位于您的应用程序私有位置内。
您可以做的是加密文件并存储在外部存储中。当您需要播放时,将文件解密到您的应用私有位置并播放。
【讨论】: