Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.10.2019, 16:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<audio id="my" autoplay="" controls="" src="https://fotodushi.ru/mus/engsong8090/11_Chris_Rea-And_you_my_love.mp3"></audio>
<script>
document.getElementById('my').addEventListener("timeupdate", function() { 
    if(this.currentTime > this.duration * .3) this.pause()
}, true);
</script>
Ответить с цитированием
  #12 (permalink)  
Старый 21.10.2019, 17:16
Аватар для VeliaR
Интересующийся
Отправить личное сообщение для VeliaR Посмотреть профиль Найти все сообщения от VeliaR
 
Регистрация: 26.05.2009
Сообщений: 12

Почему то не срабатывает.
Забыл добавить, что все это должно выполняться в цикле с рандомными промежутками.
Вот мой код:

<script>
function mp3play(){
    var rnd_num = Math.floor(Math.random() * 1200) + 1;		// max delay in seconds
	var audio = new Audio();
	audio.volume = 1;
	audio.src = "/mp3/" + (Math.floor(Math.random() * 40) + 1) + ".mp3";		// count of files in folder
    audio.onloadeddata = function(){
        audio.currentTime = Math.random() * audio.duration;
        audio.play();
        setTimeout(function(){audio.pause()}, 3 + Math.random() * 2);
    }
	setTimeout(mp3play,rnd_num * 1000);
}

mp3play();
</script>


Что здесь не так?
Ответить с цитированием
  #13 (permalink)  
Старый 21.10.2019, 17:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

VeliaR,
если ошибок нет, файлы просто неуспевают прогрузится, возможно rnd_num маловато, и смотрите консоль.
Ответить с цитированием
  #14 (permalink)  
Старый 21.10.2019, 17:47
Аватар для Опан1
Аспирант
Отправить личное сообщение для Опан1 Посмотреть профиль Найти все сообщения от Опан1
 
Регистрация: 10.09.2019
Сообщений: 35

А в консоли не появляется ошибка, что файл не найден? Если да, то попробуйте в 6 строке убрать первый слеш, оставить audio.src = "mp3/"...
Ещё у Вас типичная ошибка - запуск плеера вез взаимодействя с посетителем сайта. Для этого я и был всавил button.

Последний раз редактировалось Опан1, 21.10.2019 в 17:59.
Ответить с цитированием
  #15 (permalink)  
Старый 21.10.2019, 17:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

VeliaR,
по идее последующий запуск таймера нужно производить после проигрывания фрагмента, и это единственный таймер нужный.
Ответить с цитированием
  #16 (permalink)  
Старый 21.10.2019, 17:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

VeliaR,
может поменять строки 6 и 7 местами?
Ответить с цитированием
  #17 (permalink)  
Старый 21.10.2019, 18:02
Аватар для Опан1
Аспирант
Отправить личное сообщение для Опан1 Посмотреть профиль Найти все сообщения от Опан1
 
Регистрация: 10.09.2019
Сообщений: 35

Но тогда получится, что загрузка данных будет из неизвестного файла, так как src ещё будет неопределено.
Ответить с цитированием
  #18 (permalink)  
Старый 21.10.2019, 18:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Опан1
что загрузка данных будет из неизвестного файла
Ответить с цитированием
  #19 (permalink)  
Старый 21.10.2019, 18:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<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');

function timer() {
    var wait = 1000 + Math.floor(Math.random() * 500),
        tm = 10 + Math.random() * 20,
        src = host + mp3[mp3.length * Math.random()|0];
        setTimeout(function(){
            mp.src = src;
            mp.oncanplay = function() {
                this.play()
            }
            mp.ontimeupdate = function() { 
                if(this.currentTime > tm) {
                    this.pause();
                    timer();    
                } 
            }
        }, wait);
}
timer();
</script>


PS. Math.random(), это псевдослучайность, а не случайность, значит будут повторы. По уму нужно удалять из массива уже проигранные.

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

В консоли след. ошибка: Uncaught (in promise) DOMException
Что это может значить и как исправить?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21: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