1

HTML5 API (SoundManager2 でも) を使用しようとすると問題が発生しました。曲の再生中に進行状況バーを作成できるように、曲の長さを見つけようとしたとき。コンソールで次のエラーが発生し続けました。

Uncaught Error: IndexSizeError: DOM Exception 1

進行状況を取得するために使用されるコードは次のとおりです。

<a href="/uploads/song_71.mp3" class="song" id="song_71"></a>
<audio id="song" preload="auto" src=""></audio>

<script>

  var song = document.getElementById("song");
  song.addEventListener("timeupdate", function(){
    var end = this.seekable.end(0),
        curr = this.currentTime,
        prog = (curr / end) * 100;

    console.log(this.currentTime, this.duration)
  })

  song.play()

  document.getElementById("play_song").addEventListener("click", function(e){    
    var song_file = this.href;
    song.src = song_file
    song.play()

    if(e){ e.preventDefault(); }
    return false;
  })

</script>
4

1 に答える 1

0

これは信じられないほどイライラし、オンラインでヘルプが見つからなかったので、回答を投稿することにしました. これはおそらく私が遭遇した非常に具体的な問題だと確信していますが、他の人がこの問題を抱えていても驚かないでしょう. MP3 の適切なヘッダー/MIME タイプを送信していない Flask 開発サーバーを使用していました。このショートカット機能を使用していたのを見て:

@app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)

ファイルをライブ サーバー (静的ファイルを直接提供する Apache がある場所) に移動すると、エラーは解消されました。これが他の貧しい魂に役立つことを願っています:-)

于 2013-06-19T04:41:13.940 に答える