我正在我的 android 应用程序中下载和加密 mp3 文件。但我正在尝试解密和读取文件而不将文件写回文件系统。当我尝试使用 CipherInputStream 将 mp3 流式传输到 android Mediaplayer API 时,它无法识别该文件。但是,当我尝试转换为字节数组并将其作为 ByteArrayInputStream 流式传输时,它可以工作,但我不想这样做,因为较大的文件可能需要很多时间并将数据存储在 JVM 中。
这是我的代码
FileInputStream fis = new FileInputStream(file);
CipherInputStream cis = new CipherInputStream(fis, cipher);
mbuffer = new ByteArrayInputStream(getByte(cis));
Response streamResponse = new Response(Status.OK, mimeType, mbuffer);
上面的代码工作正常,但这个问题
new ByteArrayInputStream(getByte(cis));
在getByte
方法中,我转换CipherInputStream
为 byte 然后将其转换回InputStream
.
我正在尝试将 cis 直接流式传输到
Response streamResponse = new Response(Status.OK, mimeType, cis);
但不适用于 MediaPlayer