Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah pelayan web GoLang saya tidak boleh memainkan video MP4 dalam Chrome?

Mengapakah pelayan web GoLang saya tidak boleh memainkan video MP4 dalam Chrome?

Susan Sarandon
Susan Sarandonasal
2024-11-02 11:27:02328semak imbas

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

Menyediakan Video (MP4) menggunakan Pelayan Web HTTP GoLang

Masalahnya

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.

Diagnosis

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.

Penyelesaian

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.

Menggunakan http.ServeFile()

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn