Heim >Backend-Entwicklung >Golang >Wie erhalte ich die Dauer einer MP3-Datei in Golang?
Die Dauer von MP3-Dateien in Golang zu ermitteln, ist ein häufiges Bedürfnis. Der PHP-Editor Xiaoxin stellt Ihnen eine einfache und effektive Methode vor. Zunächst müssen wir eine Bibliothek eines Drittanbieters verwenden, um MP3-Dateien zu verarbeiten. Empfehlenswert ist die Verwendung der Go-Audio-Bibliothek, die einige praktische Funktionen bereitstellt. Als nächstes müssen wir die Decoder-Funktion der Go-Audio-Bibliothek verwenden, um die MP3-Datei zu dekodieren. Anschließend können wir die Dauer der MP3-Datei ermitteln, indem wir die Duration-Methode des Decoders aufrufen. Am Ende erhalten wir einen Dauerwert in Nanosekunden, den wir in ein benutzerfreundlicheres Format wie Sekunden oder Minuten umwandeln können. So erhalten Sie die Dauer einer MP3-Datei in Golang. Hoffe das hilft!
Ich habe eine Text-to-Speech-Anfrage eingerichtet, die die openAI-API auffordert, dann das Audio zu generieren. Jetzt möchte ich die Dauer in [MM:SS] wissen. Gibt es eine Möglichkeit oder Bibliothek, sie abzurufen?
Diese Frage wird hier beantwortet:
Wie finde ich die Länge der MP3-Datei Golang?
Außerdem möchten Sie möglicherweise float64 in das MM:SS-Format konvertieren. In diesem Fall können Sie etwa Folgendes verwenden:
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) }
Das obige ist der detaillierte Inhalt vonWie erhalte ich die Dauer einer MP3-Datei in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!