Html5音频元素无法读取blob网址

时间:2014-04-14 12:04:18

标签: javascript asp.net-mvc html5

我正在使用Asp.Mvc和recorder.js从视图中捕获音频,使用

将生成的blob转换为url
Url=Url.createobjecturl(blop);

然后将网址发送到服务器。

现在的问题是,当我将url发送回客户端并尝试在音频元素中播放它作为src时,它会发出404 not found错误。

请你的想法......

编辑:

我的代码是这样的:

setInterval(function () {
    if (canvas) {
        dataUrl = canvas.toDataURL();
        recorder && recorder.exportWAV(handleWAV.bind(this));

        recorder.clear();
        fd = new FormData();
        fd.append("audio",  audioUrl);
        fd.append("id", id);
        fd.append("drawing", dataUrl);
        xhr = new XMLHttpRequest();
        xhr.open("POST", "/Session/UploadData", true);
        xhr.send(fd);

    }
}, 100);

我将画布drawingUrl和audioUrl发送到服务器并在另一个视图中再次获取它们

setInterval(function () {
if (ctx) {
        $.ajax({
            url: "/Session/DownloadData/" + id
        })
    .done(function (data) {
        x = data;
        var imageObj = new Image();
        imageObj.src = data["drawing"];
        ctx.drawImage(imageObj, 0, 0);
        audioElement.src = data["audio"];  //error thrown here
        audioElement.play();
    });
}, 100);

画布绘图显得很好,但音频却没有。

忘了提到错误只是在发送url并从服务器返回之后才发生,但是如果我在没有它的情况下直接在页面中播放url它会正常工作,是的,url从服务器返回与发送的值相同。

1 个答案:

答案 0 :(得分:-1)

function display(vid){

    var video = document.getElementById("video");
    video.src = window.URL.createObjectURL(vid);

}