Поэтому некоторые друзья и я работаем над проектом, чтобы сделать простой медиаплеер, используя звуковой тег. Что-то не работает. Не уверен, что, хотя... Пожалуйста, помогите
<html>
<head>
<script type='text/javascript'>
function defAudio() {
var def = playRandom();
var format = '.mp3';
var title = '"+def+format+"';
document.getElementById('media').src="+def+format+";
document.getElementById('test').innerHTML=title+'has been selected';
}
function playRandom() {
var mp3 = dBase();
for (var i = 0; i < mp3.length; i++) {
var selVal = mp3[Math.floor(Math.random() * i)];
var gen = mp3[selVal];
return gen;
}
}
function dBase() {
var songs = array();
songs[0] = 'A Prophecy';
songs[1] = 'The Final Episode';
songs[2] = 'When Everyday is the Weekend';
return songs;
}
/*function select() {}*/
</script>
</head>
<body onload='defAudio()'>
<p id='iface'>
<audio controls>
<source id='media' src='' type='audio/mpeg'>
Unexpected Error!
</audio>
</p>
</body>
</html>
Предполагается случайным образом выбрать песню из трех. Все в том же каталоге, чтобы не проблема. Если я непосредственно ввожу названия песен, он работает.
В этом коде вы вызываете defAudio()
когда тело загружается, и что, вероятно, до того, как <audio>
еще не загружен. Это может быть одна проблема.
Я также видел, что в этом коде
var title= '"+def+format+"';
Вы включили все в строку, как между кавычками. Таким образом, все это будет рассматриваться как строка с точным текстом (без значений переменных), и этот заголовок будет выглядеть как " "+def+format+"
И вы тоже испортили этот другой код
document.getElementById('media').src="+def+format+";
и вы сделали противоположное. Это два "
должна быть в кавычках, или они будут рассматриваться как переменные и их ;
остановит линию программы в этой точке.
(Извините за мой синтаксис, я не из англоязычной страны)
Something isn't working.
? Довольно смутное описание проблемы.