Я очень застрял.Я запутался с этим, по крайней мере, в течение 30 минут, и я не могу понять, как предварительно загружать только метаданные.
если вы перейдете сюда , вы увидите, что есть атрибут предварительной загрузки, который позволяет вамуказать, что для предварительной загрузки.Я пометил его как метаданные только потому, что хотел продолжительность каждого аудиофайла.Поскольку он не загружался, я попытался .load()
, и он загружает реальное аудио, даже если я указал метаданные.
Как загрузить мета в html5 javascript?если он загружает секунду или две аудио, я не возражаю, если он не пытается предварительно загрузить минуты или весь файл.
http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#dom-media-networkstate
Значение 2 = NETWORK_LOADING, где 1= холостой ход или загружен.
http://jsfiddle.net/CD3BZ/
<body>
<div>Click to test if loaded</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8">
try{
var a1 = new Audio('http://freshly-ground.com/data/audio/sm2/20060924%20-%20Ghosts%20&%20Goblins%20Reconstructed.ogg');
$(a1).bind('loadedmetadata', function(e){
//alert('a1 ' + a1.duration + ' ' + a1.networkState);
});
$(a1).bind('canplay', function(e){
alert('a1z ' + ' ' + a1.networkState);
});
$(a1).attr('preload', 'metadata');
a1.preload = 'metadata';
//alert(a1.duration);
//a1.play();
a1.load();
$('div').click(function(e){
alert('a1z ' + ' ' + a1.networkState);
});
}
catch(e){
alert(e);
}
</script>
</body>