Я создал очень простой список воспроизведения для воспроизведения некоторых mp3-файлов, и я использую <audio>
для хранения файлов, но хотя Chrome, Opera и Firefox на Android уважают preload="none"
, я не могу сделать собственный браузер Android( тот, который поставляется по умолчанию ), обратите внимание и не воспроизводите автоматически первый файл в списке, что неверно, и для меня это большая проблема, с которой я сталкиваюсь в этом браузере.
Что я здесь не так делаю и как я могу остановить автоматическое воспроизведение в родном браузере Android?
Заранее спасибо
HTML:
<audio id="audio" preload="none" tabindex="0" controls="" type="audio/mpeg">
<source src="https://myselfsite.com/audios/Audio-1.mp3">
</audio>
<ul id="playlist">
<li class="active">
<a href="https://myselfsite.com/audios/Audio-1.mp3">
Details of 1
</a>
</li>
<li>
<a href="https://myselfsite.com/audios/Audio-2.mp3">
Details of 2
</a>
</li>
<li>
<a href="https://myselfsite.com/audios/Audio-3.mp3">
Details of 3
</a>
</li>
</ul>
СКРИПТ:
init();
function init(){
var audio = document.getElementById('audio');
var playlist = document.getElementById('playlist');
var tracks = playlist.getElementsByTagName('a');
audio.volume = 1;
audio.play();
for(var track in tracks) {
var link = tracks[track];
if(typeof link === "function" || typeof link === "number") continue;
link.addEventListener('click', function(e) {
e.preventDefault();
var song = this.getAttribute('href');
run(song, audio, this);
});
}
audio.addEventListener('ended',function(e) {
for(var track in tracks) {
var link = tracks[track];
var nextTrack = parseInt(track) + 1;
if(typeof link === "function" || typeof link === "number") continue;
if(!this.src) this.src = tracks[0];
if(track == (tracks.length - 1)) nextTrack = 0;
console.log(nextTrack);
if(link.getAttribute('href') === this.src) {
var nextLink = tracks[nextTrack];
run(nextLink.getAttribute('href'), audio, nextLink);
break;
}
}
});
}
function run(song, audio, link){
var parent = link.parentElement;
var items = parent.parentElement.getElementsByTagName('li');
for(var item in items) {
if(items[item].classList)
items[item].classList.remove("active");
}
parent.classList.add("active");
audio.src = song;
audio.load();
audio.play();
}