Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mendapatkan tempoh fail mp3 di Golang?

Bagaimana untuk mendapatkan tempoh fail mp3 di Golang?

WBOY
WBOYke hadapan
2024-02-09 11:57:18663semak imbas

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)
}

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam