Bagaimana untuk mendapatkan tempoh fail mp3 di Golang?

WBOY
Lepaskan: 2024-02-09 11:57:18
ke hadapan
671 orang telah melayarinya

Bagaimana untuk mendapatkan tempoh fail mp3 di Golang?

Mendapatkan tempoh fail mp3 di Golang adalah keperluan biasa. Editor PHP Xiaoxin akan memperkenalkan anda kepada kaedah yang mudah dan berkesan. Pertama, kita perlu menggunakan perpustakaan pihak ketiga untuk memproses fail mp3. Adalah disyorkan untuk menggunakan perpustakaan go-audio, yang menyediakan beberapa fungsi yang mudah. Seterusnya, kita perlu menggunakan fungsi Penyahkod pustaka go-audio untuk menyahkod fail mp3. Kemudian, kita boleh mendapatkan tempoh fail mp3 dengan memanggil kaedah Tempoh Penyahkod. Pada akhirnya, kita akan mendapat nilai tempoh dalam nanosaat, yang boleh kita tukar kepada format yang lebih mesra, seperti saat atau minit. Inilah cara untuk mendapatkan tempoh fail mp3 di Golang. Harap ini membantu!

Kandungan soalan

Saya menyediakan permintaan teks ke pertuturan yang meminta API openAI untuk kemudian menjana audio. Sekarang saya ingin mengetahui tempohnya dalam [MM:SS], adakah terdapat sebarang cara atau perpustakaan untuk mendapatkannya?

Penyelesaian

Soalan ini dijawab di sini:

Bagaimana untuk mencari panjang fail mp3 golang?

Selain itu, anda mungkin mahu menukar float64 kepada format MM:SS. Dalam kes ini, anda boleh menggunakan sesuatu seperti ini:

package main

import (
    "fmt"
    "io"
    "os"
    "time"

    "github.com/tcolgate/mp3"
)

const mp3File = <path-to-mp3-file>

func main() {
    var t float64

    fd, err := os.Open(mp3File)
    if err != nil {
        panic(err)
    }
    defer fd.Close()

    d := mp3.NewDecoder(fd)
    var f mp3.Frame
    skipped := 0

    for {

        if err := d.Decode(&f, &skipped); err != nil {
            if err == io.EOF {
                break
            }
            fmt.Println(err)
            return
        }

        t = t + f.Duration().Seconds()
    }

    fmt.Println(t)

    // Convert the value to a time.Duration object
    duration := time.Duration(t * float64(time.Second))

    // Get the duration in minutes and seconds
    minutes := int(duration.Minutes())
    seconds := int(duration.Seconds()) - (minutes * 60)

    // Format the duration in the MM:SS format
    formatted_duration := fmt.Sprintf("%02d:%02d", minutes, seconds)

    fmt.Printf("The value %v expressed in MM:SS format is %v.\n", t, formatted_duration)
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan tempoh fail mp3 di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!