无法在我自己的服务器

时间:2015-10-21 14:11:14

标签: java google-chrome html5-audio

我正在尝试用Java创建一个可以提供可搜索音频文件的文件服务器。但我在Google Chrome html5音频播放器中找不到我提供的文件。当我向前寻求时它什么也不做(即使是在下载的内容上),如果向后搜索太多则从头开始。如果我从不同的位置加载文件(http://www.vorbis.com/music/Epoq-Lepidoptera.ogg),那么它是可以搜索的。

这是我的服务器代码

package com.company;

import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;

import java.io.*;
import java.net.InetSocketAddress;


public class Main {

    public static void main(String[] args) throws Exception {
        HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
        server.createContext("/Epoq-Lepidoptera.ogg", new MyHandler());
        server.setExecutor(null); // creates a default executor
        server.start();
    }


    static class MyHandler implements HttpHandler {
        public void handle(HttpExchange httpExchange) throws IOException {

            long contentLength;
            File file = new File("Epoq-Lepidoptera.ogg");
            FileInputStream fis = new FileInputStream(file);
            BufferedInputStream bis = new BufferedInputStream(fis);
            contentLength = file.length();
            System.out.println(contentLength);

            Headers headers = httpExchange.getResponseHeaders();
            headers.add("content-type", "audio/ogg");

            // ok, we are ready to send the response.
            httpExchange.sendResponseHeaders(200, contentLength);
            OutputStream os = httpExchange.getResponseBody();
            byte[] data = new byte[1000];
            while (true) {
                int bytesRead = bis.read(data);
                if (bytesRead == -1) break;
                os.write(data, 0, bytesRead);
            }

            os.close();
            System.out.println("request served");
        }
    }
}

我正在使用此html文件来测试音频。

<html>
    <body>
        <audio controls="control" preload="auto" src="http://localhost:8000/Epoq-Lepidoptera.ogg"></audio>
    </body>
</html>

但是以下文件是可以搜索的

<html>
    <body>
        <audio controls="control" preload="auto" src="http://www.vorbis.com/music/Epoq-Lepidoptera.ogg"></audio>
    </body>
</html>

我做错了什么或我应该在我的服务器中实现什么才能使文件可搜索,最少下载内容(在白条中显示)

此问题仅适用于Google Chrome,而不适用于Firefox。 Firefox可以搜索加载的内容。

0 个答案:

没有答案