report.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package services
  2. import (
  3. "eta/eta_pub/models"
  4. "eta/eta_pub/services/audio"
  5. "eta/eta_pub/utils"
  6. "fmt"
  7. "os"
  8. "path"
  9. )
  10. // HandleVideoDecibel 处理报告中的音频文件
  11. func HandleVideoDecibel(chapterInfo *models.ReportChapter) {
  12. var err error
  13. //fmt.Println("开始 处理报告中的音频文件")
  14. defer func() {
  15. if err != nil {
  16. utils.FileLog.Info(fmt.Sprint(chapterInfo.ReportChapterId, "处理报告中的音频分贝失败:"+err.Error()))
  17. }
  18. }()
  19. inputFile, err := utils.DownloadFile(chapterInfo.VideoUrl, "./static/tmpFile/")
  20. if err != nil {
  21. return
  22. }
  23. // 删除下载的临时音频文件
  24. defer func() {
  25. os.Remove(inputFile)
  26. }()
  27. outFileName, ok, _ := audio.ConvAudioDecibel(inputFile)
  28. if !ok {
  29. return
  30. }
  31. // 删除分贝变更后的音频文件
  32. defer func() {
  33. os.Remove(outFileName)
  34. }()
  35. // 如果输入与输出文件名一致,那么就不需要覆盖
  36. if outFileName == inputFile {
  37. return
  38. }
  39. // 音频分贝改变了,需要替换音频文件
  40. //上传到阿里云
  41. resourceUrl, err := UploadAliYun(path.Base(outFileName), outFileName)
  42. if err != nil {
  43. return
  44. }
  45. // 更改表中的音频地址
  46. chapterInfo.OriginalVideoUrl = chapterInfo.VideoUrl
  47. chapterInfo.VideoUrl = resourceUrl
  48. err = chapterInfo.UpdateChapter([]string{"OriginalVideoUrl", "VideoUrl"})
  49. return
  50. }