0

我正在上传一个音频文件并制作一个 mp3 版本,它可以工作。此外,我正在从 mp3 中生成一个波形作为“png”。威奇也很好用。

图像已生成并保存,但后缀为“mp3”,应为“png”。该视图已使用“mp3”文件扩展名正确渲染了图像。

现在,当视图尝试获取图像时出现 404 错误。未正确假定文件名:

https://mybucket.amazonaws.com/uploads/sound/soundfile/142/waveform_Sky_02.wav

应该是

https://mybucket.amazonaws.com/uploads/sound/soundfile/142/waveform.png

这是我的:版本代码:

 version :waveform do

    def filename
      "watermark.png" if original_filename.present?
    end

    def convert_to_waveform
      cache_stored_file! if !cached?
      Dir::Tmpname.create(File.basename(current_path)) do |tempname|
        begin
          puts system %Q{ffmpeg -y -i "#{current_path}" -f wav "#{tempname}" > /dev/null 2>&1}
          FileUtils.rm current_path
          Waveform.generate(tempname, current_path, method: :rms, background_color: :transparent)

        ensure
          FileUtils.rm tempname
        end
      end
    end

    process :convert_to_waveform

  end

数据库保存“waveform_Sky_02.wav”

我怎样才能得到这个工作?

4

1 回答 1

0

这一直对我有用:

def full_filename(for_file=file)
  super.chomp('wav') + '.png'
end

或所有文件类型:

def full_filename(for_file=file)
  super.chomp(File.extname(super)) + '.png'
end
于 2013-08-27T18:54:20.680 回答