Задать вопрос
@Shimpanze

Как заставить iframe повторять mp3 внутри себя?

Добрый день!

Есть код:

<iframe style="display: none;" src="../music/test.mp3" allow="autoplay"></iframe>


Какой атрибут здесь нужен, чтобы песня крутилась по кругу?

Спасибо!
  • Вопрос задан
  • 601 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
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>';	
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
зачем iframe если сейчас везде поддерживается audio
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы