Pelayan web yang dibangunkan menggunakan GoLang memaparkan kandungan statik (HTML, JavaScript, CSS, dan imej) dengan jayanya. Walau bagaimanapun, apabila cuba memaparkan video MP4, penyemak imbas tidak boleh memuatkannya.
Isu timbul daripada saiz fail video. Chrome menimbal kandungan, tetapi hanya sebahagiannya untuk video besar. Apabila video melebihi ambang tertentu, Chrome menjangkakan pelayan menyokong penyajian kandungan separa (Permintaan Julat).
Dalam kod yang disediakan, pelaksanaan penyajian fail tersuai tidak mengendalikan permintaan Julat, menyebabkan Chrome enggan memainkannya video.
Untuk menyelesaikan isu, gunakan http.ServeFile() untuk menyampaikan fail video. http.ServeFile() secara automatik mengendalikan permintaan Julat dan menetapkan pengepala respons yang sesuai, termasuk Pengepala Jenis Kandungan dan Accept-Ranges: bait yang diperlukan untuk Chrome memainkan video.
Ubah suai kod yang disediakan seperti berikut:
<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>
Pelaksanaan ini akan menyiarkan video MP4 dengan betul, memastikan ia boleh dimainkan dalam Chrome.
Atas ialah kandungan terperinci Mengapakah pelayan web GoLang saya tidak boleh memainkan video MP4 dalam Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!