Лень проверять, но скорее всего так будет работать(только назначтать обработчик надо
до включения в audio документ).
myaudio.onloadedmetadata = function(){duration.innerHTML = myaudio.duration;}
Делая так:
myaudio.onloadedmetadata = duration.innerHTML = myaudio.duration;
вы показываете что сами совершенно не понимаете что делаете.