2013-06-19 4 views
0

У меня возникла проблема с использованием API HTML5 (также с SoundManager2). При попытке найти продолжительность песни, чтобы я мог создать индикатор выполнения, когда играла песня. Я продолжал работать в следующее сообщение об ошибке в консоли:Искантируемый html5 аудио Ошибка Uncaught: IndexSizeError: DOM Exception 1

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> 

ответ

0

Это было невероятно расстраивает и, видя, как я не мог найти какой-либо помощи в Интернете, я решил отправьте мой ответ. Я уверен, что это, вероятно, очень специфическая проблема, с которой я столкнулся, но не удивился бы, если бы у других была эта проблема. Я использовал сервер Flask developemnt, который не отправлял по соответствующим заголовкам/mimetypes для MP3. Видя, как я использовал этот shortcut function:

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

После того, как я переехал мои файлы на реальном сервере (где у меня есть Apache служить статические файлы непосредственно) ошибка была ликвидирована. Надеюсь, это поможет некоторым другим бедным душам :-)

 Смежные вопросы

  • Нет связанных вопросов^_^