Ответы пользователя по тегу MP3
  • Как заставить iframe повторять mp3 внутри себя?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    <span id="EngWorksPlayer" style="display:none;"></span>

    <script type="text/javascript">
    	var EngWorksPlayer=document.getElementById('EngWorksPlayer'),EngWorksPlayerLinks='ссылка';
    	window.onload=(function(){
    		EngWorksPlayer.innerHTML='<audio autoplay="autoplay" loop="loop"><source src="'+EngWorksPlayerLinks+'"></audio>';
    	});
    </script>


    если вдруг все же надо будет ифрайм, то можно что-то вроди этого:

    <iframe id="IFR" style="display: none;" src="ссылка" allow="autoplay"></iframe>

    <script type="text/javascript">
    var IFR=document.getElementById('IFR'),audio=new Audio();audio.src="ссылка на аудио";//создаем объект audio и указываем путь к треку
    audio.addEventListener('loadedmetadata',function(){//обработчик для получения метаинфы о треке
    	var timerId=setInterval(function(){
    		IFR.setAttribute("src","ссылка на аудио");
    	},audio.duration*1000+444);//получив длину аудифайла переводим в милисеки добавляем к ней немного и с этим промежутком делаем замену атрибута на тот же самый тем самым файл будет крутиться по кругу
    });
    </script>

    но и тут есть изъян... Эксплорер не воспроизводит ифрайм, он его видит как документ. В этом случае можно совместить варианты, предварительно проверив браузер пользователя через php:
    $user_agent=$_SERVER['HTTP_USER_AGENT'];//получаем информацию о браузере
    if(stristr($user_agent,'Trident/')){// если IE, т.е в информации присутствует совпадение текст «Trident/» то:
    	echo	'<audio id="AuDio" autoplay="autoplay" loop="loop"><source src="ссылка"></audio>',
    				'<script type="text/javascript">',
    				'window.onload=(function(){',
    					'document.getElementById("AuDio").play();',
    					'});',
    			'</script>';
    }else{// в остальных случаях
    	echo	'<iframe id="IFR" style="display: none;" src="ссылка" allow="autoplay"></iframe>',
    			'<script type="text/javascript">var IFR=document.getElementById(\'IFR\'),audio=new Audio();audio.src="ссылка";',
    				'audio.addEventListener(\'loadedmetadata\',function(){',
    					'setInterval(function(){',
    						'IFR.setAttribute("src","ссылка");',
    					'},audio.duration*1000+444);',
    				'});',
    			'</script>';	
    }
    Ответ написан
    Комментировать