如何为服务使用 NanoHTTPD 里面的 sdcard 上的文件

2025-04-14 17:10:26
推荐回答(1个)
回答1:

首先,您需要确保您正确设置 mimetype 服务媒体文件时。
第二,你就不会很远的地方读取每一行使用 MP3 文件 FileReader ,相反你应该提供与 NanoHTTPD InputStream 。
下面是代码的工作的您,它是代码的一个 MP3 文件的修改的版本。通过将 mimetype 设置为 audio/mpeg 你让决定怎么做与此内容的浏览器。例如,在 Chrome,综合的音乐播放器启动和播放该文件。
public class StackOverflowMp3Server extends NanoHTTPD {

public StackOverflowMp3Server() {
super(8089);
}

@Override
public Response serve(String uri, Method method,
Map header, Map parameters,
Map files) {
String answer = "";

FileInputStream fis = null;
try {
fis = new FileInputStream(Environment.getExternalStorageDirectory()
+ "/music/musicfile.mp3");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return new NanoHTTPD.Response(Status.OK, "audio/mpeg", fis);
}
}