Heim  >  Artikel  >  Backend-Entwicklung  >  Warum kann mein GoLang-Webserver keine MP4-Videos in Chrome abspielen?

Warum kann mein GoLang-Webserver keine MP4-Videos in Chrome abspielen?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 11:27:02328Durchsuche

Why can't my GoLang webserver play MP4 videos in Chrome?

Bereitstellung von Videos (MP4) mit GoLang HTTP Webserver

Das Problem

Ein mit GoLang entwickelter Webserver zeigt statische Inhalte an (HTML, JavaScript, CSS, und Bilder) erfolgreich. Beim Versuch, ein MP4-Video anzuzeigen, kann der Browser es jedoch nicht laden.

Die Diagnose

Das Problem ergibt sich aus der Größe der Videodatei. Chrome puffert den Inhalt, bei großen Videos jedoch nur teilweise. Wenn das Video einen bestimmten Schwellenwert überschreitet, erwartet Chrome, dass der Server die Bereitstellung teilweiser Inhalte (Bereichsanfragen) unterstützt.

Im bereitgestellten Code verarbeitet die Implementierung der benutzerdefinierten Dateibereitstellung keine Bereichsanfragen, was dazu führt, dass Chrome die Wiedergabe verweigert das Video.

Die Lösung

Um das Problem zu beheben, verwenden Sie http.ServeFile(), um die Videodateien bereitzustellen. http.ServeFile() verarbeitet Bereichsanfragen automatisch und legt entsprechende Antwortheader fest, einschließlich der Header Content-Type und Accept-Ranges: Bytes, die Chrome zum Abspielen des Videos benötigt.

Mit http.ServeFile()

Ändern Sie den bereitgestellten Code wie folgt:

<code class="go">func (vh *viewHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    path := r.URL.Path[1:]
    log.Println(path)
    if contentType == "video/mp4" {
        http.ServeFile(w, r, path)
    } else {
        data, err := ioutil.ReadFile(string(path))
        if err == nil {
            w.Header().Add("Content-Type", contentType)
            w.Write(data)
        } else {
            log.Println("ERROR!")
            w.WriteHeader(404)
            w.Write([]byte("404 - " + http.StatusText(404)))
        }
    }
}</code>

Diese Implementierung stellt MP4-Videos korrekt bereit und stellt sicher, dass sie in Chrome abgespielt werden können.

Das obige ist der detaillierte Inhalt vonWarum kann mein GoLang-Webserver keine MP4-Videos in Chrome abspielen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn