无法托管 MP4 com.sun HttpServer
Can't host MP4 com.sun HttpServer
我使用 com.sun.net.httpserver API 制作了一个基本的 HTTP 服务器。当我使用 createContext 时,它似乎适用于除视频文件以外的所有内容。这是我在 createContext 语句中使用的 HttpHandler:
private static HttpHandler load(final String fileName) {
return new HttpHandler() {
@Override
public void handle(HttpExchange t) throws IOException {
File file = new File(fileName);
FileInputStream fin = new FileInputStream(file);
OutputStream os = t.getResponseBody();
final byte[] buffer = new byte[0x10000];
int count = 0;
while ((count = fin.read(buffer)) >= 0) {
t.sendResponseHeaders(200, count);
os.write(buffer, 0, count);
}
os.flush();
os.close();
fin.close();
}
};
}
我没有收到任何错误。当我打开网页观看视频时,它只会显示一个空的视频帧。我的 HTML 本身很好,因为我在没有托管服务器的情况下尝试过并且它有效。我该如何解决这个问题?
所以问题最终是我添加了一个 mp4,我们将调用 test.mp4 到端点,我们将其称为 /example,但是当我在 HTML 中引用 mp4 时我做的文件 /example/test.mp4 而不是 /example.
我使用 com.sun.net.httpserver API 制作了一个基本的 HTTP 服务器。当我使用 createContext 时,它似乎适用于除视频文件以外的所有内容。这是我在 createContext 语句中使用的 HttpHandler:
private static HttpHandler load(final String fileName) {
return new HttpHandler() {
@Override
public void handle(HttpExchange t) throws IOException {
File file = new File(fileName);
FileInputStream fin = new FileInputStream(file);
OutputStream os = t.getResponseBody();
final byte[] buffer = new byte[0x10000];
int count = 0;
while ((count = fin.read(buffer)) >= 0) {
t.sendResponseHeaders(200, count);
os.write(buffer, 0, count);
}
os.flush();
os.close();
fin.close();
}
};
}
我没有收到任何错误。当我打开网页观看视频时,它只会显示一个空的视频帧。我的 HTML 本身很好,因为我在没有托管服务器的情况下尝试过并且它有效。我该如何解决这个问题?
所以问题最终是我添加了一个 mp4,我们将调用 test.mp4 到端点,我们将其称为 /example,但是当我在 HTML 中引用 mp4 时我做的文件 /example/test.mp4 而不是 /example.