สาเหตุหลัก: CORS (Cross-Origin Resource Sharing)
แก้ไขฝั่ง Client
var video = document.querySelector('video');
video.crossOrigin = 'anonymous'; // ต้องตั้งก่อน set src
แก้ไขฝั่ง Server (Response Header)
Access-Control-Allow-Origin: *
ทางเลือก: Inject HTML ด้วย jQuery
$('#audio').html('');
สาเหตุอื่น: Codec ไม่รองรับ, Path ผิด, MIME Type ผิด, ไฟล์เสียหาย