1

window.URL.createObjectURL(file)によって作成されたアドレスをdancer.jsに渡したいのですが、取得しGET blob:http%3A//localhost/b847c5cd-aaa7-4ce0-8ff8-c13c6fc3505a.mp3 404 (Not Found)ます。

ファイル入力で選択したファイルを使用してオーディオ要素を作成できましたが、dancer.jsがファイルを見つけられません...何かアイデアはありますか?(以下のObjectURLの受け渡し方法)

    $(document).ready(function(){
    $("#submit").click(function(){
        var file = document.getElementById("file").files[0];
        $('body').append('<audio id="audio" controls="controls"></audio>');
        $('#audio').append('<source src='+window.URL.createObjectURL(file)+' type=audio/mpeg />')
        $('body').append('<a href='+window.URL.createObjectURL(file)+'>link</a>')
        dancer(window.URL.createObjectURL(file));
    })
})
4

1 に答える 1

4

dancer.jsのreadmeを見ると、loadメソッドは要素への参照<audio>またはソースを指定する構成オブジェクトのいずれかを取得するように見えます{scr: varHoldingFileURL}。あなたはすでに<audio>あなたのファイルの要素を作成しているので、私はそれをダンサーに渡すだけです:

$(document).ready(function() {
    var dancer = new Dancer(),
        fileURL;

    $("#submit").click(function(){
            var audioElement,
                file = document.getElementById("file").files[0];

            fileURL = window.URL.createObjectURL(file);

            // remove any preexisting instances of the audio tag
            $('#audio').remove();

            // Revoke any previously used file URL so it doesn't
            // take up memory anymore.
            window.URL.revokeObjectURL(fileURL);

            $('body').append('<audio id="audio" controls="controls"></audio>');
            $('#audio').append('<source src='+ fileURL +' type=audio/mpeg />')
            $('body').append('<a href=' + fileURL +'>link</a>')

            // get a reference to the audio element we created
            audioElement = $('#audio')[0];

            dancer.load(audioElement);
    })
});
于 2013-02-21T22:13:40.377 に答える