JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 将音频文件保存在rails中大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有简单的rails应用程序,我使用 HTML5音频web api与recorder.js录制语音,然后将其保存在应用程序服务器上.录音发生很好,我可以重播录音和听到声音,但当我在服务器上发布时,我的音频文件是空白的.

html / js代码

function stopRecording() {
            recorder.stop();
            recorder.exportWAV(function(s) {
                audio.src = window.URL.createObjectURL(s);
                sendWaveToPost(s);                  
            });
        }

function sendWaveToPost1(blob) {
            alert('in');
        var data = new FormData();

            data.append("audio",blob,(new Date()).getTime() + ".wav");

            var oReq = new XMLHttpRequest();
            oReq.open("POST","/audio/save_file");
            oReq.send(data);
            oReq.onload = function(oEvent) {
                if (oReq.status == 200) {
                    console.log("Uploaded");
                } else {
                    console.log("Error " + oReq.status + " occurred uploading your file.");
                }
            };
        }

控制器代码

def save_file
    audio = params[:audio]
    save_path = Rails.root.join("public/#{audio.original_filename}")

      # Open and write the file to file system.
      File.open(save_path,'wb') do |f|
        f.write params[:audio].read
      end

    render :text=> 'hi'
end

控制台日志

Parameters: {"audio"=>#<ActionDispatch::Http::UploadedFile:0xb61fea30   
@original_filename="1379157692066.wav",@content_type="audio/wav",@headers="Content-  
Disposition: form-data; name=\"audio\"; filename=\"1379157692066.wav\"\r\nContent-Type: 
audio/wav\r\n",@tempfile=#<File:/tmp/RackMultipart20130914-3587-tgwevx>>}

解决方法

好的,我得到了答案.

问题是当文件进入时,它将把读取光标设置到文件的末尾
所以我们需要首先回放文件以确保将读取光标设置为开头.

将我的控制器代码更改为以下并且它有效.

audio.rewind
        # Open and write the file to file system.
      File.open(save_path,'wb') do |f|
        f.write audio.read
      end

大佬总结

以上是大佬教程为你收集整理的javascript – 将音频文件保存在rails中全部内容,希望文章能够帮你解决javascript – 将音频文件保存在rails中所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: