vorbis.go 545 B

12345678910111213141516171819202122232425262728
  1. package duration
  2. import (
  3. "log"
  4. "os"
  5. ov "github.com/anyhon/engine/audio/ov"
  6. )
  7. func GetSongDurationSecondsVorbis(file *os.File) int {
  8. fileName := file.Name()
  9. ovFile, ovErr := ov.Fopen(fileName)
  10. if ovErr != nil {
  11. // TODO: log these errors to the DB
  12. log.Printf("[vorbis] Error opening file (%s): %v\n", fileName, ovErr)
  13. return 0
  14. }
  15. result, timeErr := ov.TimeTotal(ovFile, -1)
  16. if timeErr != nil {
  17. log.Printf("[vorbis] Error getting duration (%s): %v\n", fileName, timeErr)
  18. return 0
  19. }
  20. ov.Clear(ovFile)
  21. return int(result)
  22. }