使用录音机录制 mp3 会创建一个 blob。但是当发送到服务器时,它的播放时间为 0 秒
mp3 recording using recorder creates a blob. but when sent to server, it has a playtime of 0 seconds
我正在设法使用 recorderjs 录制音频。它创建音频。我正在使用 ruby rails。我保存它。它将文件正确发送到我的服务器。当我去测试时,看看音频是否相同。它不播放,播放时间为 0 秒。
我想录制一个 2-5 秒长的音频文件。然后将该文件保存在服务器上,它将链接到一个词。
File.open('public/mp3s/' + filename, 'wb') do |f|
f.write(Base64.decode64(params[:mp3data]))
end
是不是我这里的写法有问题?
很可能是您遇到了编码错误,或者输入错误生成了一个空文件。例如,参数可以是二进制八位字节流而不是 base64。
或者它可能作为不同的密钥出现,在这种情况下,您将创建一个空文件。
如果您使用 mac 或 linux,请尝试对写入的文件使用 file
命令。该命令应该查看魔术字节,如果它是 MP3,您应该会看到类似的内容。
同样,如果您对 rails 保存的文件和生成的文件进行 cat、hexdump 或记事本,您应该能够看到任何差异。
params[:mp3data]
也可能是nil
在开发模式下,rails 服务器应该列出传入的参数。
谢谢。它返回为零。所以它让我检查文件,看看里面是否有任何数据。所以我为它创建了一个大小和参数。我想通了,它现在正在工作! '
metadata_size = "data:audio/mp3;base64,".length data = params[:mp3data][metadata_size, params[:mp3data].length] File.open('public/mp3s/' + filename, 'wb') do |f| f.write(Base64.decode64(data)) end
@EnabrenTane
我正在设法使用 recorderjs 录制音频。它创建音频。我正在使用 ruby rails。我保存它。它将文件正确发送到我的服务器。当我去测试时,看看音频是否相同。它不播放,播放时间为 0 秒。
我想录制一个 2-5 秒长的音频文件。然后将该文件保存在服务器上,它将链接到一个词。
File.open('public/mp3s/' + filename, 'wb') do |f|
f.write(Base64.decode64(params[:mp3data]))
end
是不是我这里的写法有问题?
很可能是您遇到了编码错误,或者输入错误生成了一个空文件。例如,参数可以是二进制八位字节流而不是 base64。 或者它可能作为不同的密钥出现,在这种情况下,您将创建一个空文件。
如果您使用 mac 或 linux,请尝试对写入的文件使用 file
命令。该命令应该查看魔术字节,如果它是 MP3,您应该会看到类似的内容。
同样,如果您对 rails 保存的文件和生成的文件进行 cat、hexdump 或记事本,您应该能够看到任何差异。
params[:mp3data]
也可能是nil
在开发模式下,rails 服务器应该列出传入的参数。
谢谢。它返回为零。所以它让我检查文件,看看里面是否有任何数据。所以我为它创建了一个大小和参数。我想通了,它现在正在工作! '
metadata_size = "data:audio/mp3;base64,".length data = params[:mp3data][metadata_size, params[:mp3data].length] File.open('public/mp3s/' + filename, 'wb') do |f| f.write(Base64.decode64(data)) end
@EnabrenTane