Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 21.10.2019, 19:29
Аватар для Опан1
Интересующийся
Отправить личное сообщение для Опан1 Посмотреть профиль Найти все сообщения от Опан1
 
Регистрация: 10.09.2019
Сообщений: 10

Повесить запуск функции mp3play(); на нажатие кнопки или другое событие, связанное с взаимодействием с посетителем сайта..
Ответить с цитированием
  #22 (permalink)  
Старый 21.10.2019, 19:33
Аватар для VeliaR
Интересующийся
Отправить личное сообщение для VeliaR Посмотреть профиль Найти все сообщения от VeliaR
 
Регистрация: 26.05.2009
Сообщений: 12

Сообщение от Опан1 Посмотреть сообщение
Повесить запуск функции mp3play(); на нажатие кнопки или другое событие, связанное с взаимодействием с посетителем сайта..
Уже сделал.
onclick="mp3play()"

Кроме того, в консоли появилась еще одна ошибка:
GET http://test.loc/mp3/23.mp3 net::ERR_CACHE_OPERATION_NOT_SUPPORTED

И так с разными другими файлами. Тоже интересно, что бы это могло значить?
Ответить с цитированием
  #23 (permalink)  
Старый 21.10.2019, 19:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 27,076

laimas,
setTimeout зачем?
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
<audio id="my" controls=""></audio>

<script>
var host = 'https://fotodushi.ru/mus/',
    mp3 = [
    'muzdushi/01La_Belle_Mixtape-Summer_Memories_O_Henri_Pfr.mp3',
    'muzdushi/02Oliver_Shanti-Sacral_Nirvana.mp3',
    'muzdushi/03Eroticheskiy_saksofon-Melodiya_lubvi.mp3',
    'muzdushi2/15Anugama-Rhythm_Of_Love.mp3',
    'muzdushi2/16Rondo_Veneziano-Musica_Fantasia.mp3',
    'muzzhizni/15-Tango_Orchester_Alfred_Hause-La_Cumparsita.mp3',
    'classic/01-Mihail_Oginskiy-Polonez.mp3',
    'muzlove/01-Mehdi-Guiding_Light.mp3',
    'muzlove/15-Elman_Namazoglu-Mehebbetim.mp3',
    'engsong8090/11_Chris_Rea-And_you_my_love.mp3',
    'krugosvet/01_Petr_Chaykovskiy-Chanson_triste.mp3',
    'france/09_Barimar-A_Paris.mp3',
    'france/16_Salvatore_Adamo-Tombe_la_neige.mp3',
    'italia/01_Biagio_Antonacci-Pazzo_Di_Lei.mp3',
    'russia/19_Aleksey_Arhipovskiy-Zolushka.mp3',
    'enigma/03_Enigma-Mea_Culpa_Part_II_(Fading_Shades_Mix).mp3'
], mp = document.getElementById('my'), tm;

mp.addEventListener("canplay", function() {
    this.play()
}, true);

mp.addEventListener("timeupdate", function() {
                if(this.currentTime > tm) {
                    this.pause();
                    timer();
                }
            })

function timer() {
        tm = 10 + Math.random() * 20;
        mp.src = host + mp3[mp3.length * Math.random()|0];
}

timer();
</script>

</body>
</html>
Ответить с цитированием
  #24 (permalink)  
Старый 21.10.2019, 19:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,143

Сообщение от VeliaR
В консоли след. ошибка: Uncaught (in promise) DOMException
Это мне? Это я часть старого кода поместил, исправлено, должно работать.
Ответить с цитированием
  #25 (permalink)  
Старый 21.10.2019, 19:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,143

Сообщение от рони
setTimeout зачем?
По условию, что через случайное время проигрывать последующие:

Сообщение от VeliaR
Забыл добавить, что все это должно выполняться в цикле с рандомными промежутками.
Я лично бы тоже это убрал, так как продолжительность фрагмента случайна.
Ответить с цитированием
  #26 (permalink)  
Старый 22.10.2019, 00:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,143

Что-то не врублюсь почему с вызовом через таймер условие this.currentTime > this.duration * .1 срабатывает дважды (проигрывает через один), если наступление события timeupdate можно еще как-то было объяснить, то с условием не понять.

<audio id="my" controls=""></audio>
<div id="fl"></div>

<script>
var host = 'https://fotodushi.ru/mus/',
    mp3 = [
    'muzdushi/01La_Belle_Mixtape-Summer_Memories_O_Henri_Pfr.mp3',
    'muzdushi/02Oliver_Shanti-Sacral_Nirvana.mp3',
    'muzdushi/03Eroticheskiy_saksofon-Melodiya_lubvi.mp3',
    'muzdushi2/15Anugama-Rhythm_Of_Love.mp3',
    'muzdushi2/16Rondo_Veneziano-Musica_Fantasia.mp3',
    'muzzhizni/15-Tango_Orchester_Alfred_Hause-La_Cumparsita.mp3',
    'classic/01-Mihail_Oginskiy-Polonez.mp3',
    'muzlove/01-Mehdi-Guiding_Light.mp3',
    'muzlove/15-Elman_Namazoglu-Mehebbetim.mp3',
    'engsong8090/11_Chris_Rea-And_you_my_love.mp3',
    'krugosvet/01_Petr_Chaykovskiy-Chanson_triste.mp3',
    'france/09_Barimar-A_Paris.mp3',
    'france/16_Salvatore_Adamo-Tombe_la_neige.mp3',
    'italia/01_Biagio_Antonacci-Pazzo_Di_Lei.mp3',
    'russia/19_Aleksey_Arhipovskiy-Zolushka.mp3',
    'enigma/03_Enigma-Mea_Culpa_Part_II_(Fading_Shades_Mix).mp3'
], mp = document.getElementById('my'), f = document.getElementById('fl'), n = -1;


mp.addEventListener("canplay", function() {
    this.play()
}, true);
 
mp.addEventListener("timeupdate", function() {
    if(this.currentTime > this.duration * .1) {
        console.log(1)
        this.pause();
        this.currentTime = 0;
        setTimeout(timer, 1000);
    }
});
 
function timer() {
        n = Math.ceil(++n % mp3.length);
        f.textContent = (n+1) + ' >> ' + mp3[n].split('/').pop();
        mp.src = host + mp3[n];
}
 
timer();
</script>


Все ясно, нужно позицию в начало.

Последний раз редактировалось laimas, 22.10.2019 в 00:31.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 20:24
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20