Chrome не будет воспроизводить потоковую ссылку Icecast
Итак, у меня есть этот код, который открывает мой "плеер", который я сделал сам. Но когда игрок открывается, звук не выходит, этого никогда не было раньше. Что может быть причиной. При открытии с помощью Chrome не воспроизводится звук, независимо от того, как открыт проигрыватель, какой бы он ни был, или ссылка, вставленная в адресную строку. У вас есть идеи?
Вы можете проверить мой плеер здесь: http://newfm.ddns.me:12/m.player.html
HTML-код для всплывающего окна:
<html>
<head>
<style>
<!--Image is used instead of text, to link page-->
a {
background: url(https://image.ibb.co/cxnuMU/playbutton.png) center no- repeat;
display: block;
width: 44px;
height: 45px;
}
</style>
</head>
<!--Link to the page and size page should be opened in-->
<a href="#" onClick="window.open('http://newfm.ddns.me:12/m.player.html','pagename','resizable,height=640,width=370'); return false;"></a>
То, что посылает звук в этом плеере - это кнопка воспроизведения. Может ли быть так, что мне нужно добавить SSL в мой поток URL?
HTML-код для кнопки воспроизведения:
<div class="ex1">
<a id="play-pause-button" class="fa fa-pause"></a>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script>
var audio = new Audio("http://newfmplayer.ddns.net:8000/newfm128.m3u");
$('#play-pause-button').on("click",function(){
if($(this).hasClass('fa-play'))
{
$(this).removeClass('fa-play');
$(this).addClass('fa-pause');
audio.play();
}
else
{
$(this).removeClass('fa-pause');
$(this).addClass('fa-play');
audio.pause();
}
});
audio.onended = function() {
$("#play-pause-button").removeClass('fa-pause');
$("#play-pause-button").addClass('fa-play');
};
</script>
<style media="screen" type="text/css">
@import url(https://cdnjs.cloudflare.com/ajax/libs/font- awesome/4.6.3/css/font-awesome.min.css);
#play-pause-button{
font-size: 50px;
cursor: pointer;
color: black;
position: relative;
left: 150px;
top: 480px;
}
</style>
</div>
</body></html>
Я также протестировал только что проверил, будет ли он работать с простым кодом:
<audio controls>
<source src="http://newfmplayer.ddns.net:8000/newfm128.m3u" type="audio/mpeg">
</audio>
И это тоже не сработало.
2 ответа
@TBR ответ правильный, но я хотел бы немного пояснить это.
Давным-давно, до появления HTML5-аудио, до приличных плееров на базе Flash, должен был быть способ щелкнуть ссылку в браузере и запустить установленный в системе аудиоплеер. (Конечно, были плагины, но необходимость иметь разные плагины для каждого сайта раздражала! Плюс, было нежелательно оставлять браузер открытым во время прослушивания.)
Простой способ сделать это - создать ссылку на файл списка воспроизведения. Это очень маленький файл, который, по сути, просто содержит URL-адреса реальных потоков. Типичный плейлист M3U выглядит так:
#EXTM3U
#EXTINF:-1, Stream Title
http://example.com/stream
Традиционно, когда ссылки указывают на этот файл списка воспроизведения, они сразу же открывают его в зарегистрированном плеере для обработки списков воспроизведения M3U. Оттуда плеер будет анализировать список воспроизведения и подключаться непосредственно к URL, http://example.com/stream
в этом случае.
Сегодня мы можем загружать аудиопотоки прямо в браузере с помощью <audio>
тег. Браузер <audio>
тег не использует файлы списка воспроизведения, хотя Это нужно для потоковых URL-адресов как есть.
В вашем примере URL для реального потока http://newfmplayer.ddns.net:8000/newfm128
,
В своем собственном ответе вы пытаетесь добавить поддельные расширения и тому подобное. Это не обязательно. Вы не должны использовать их. Любой, кто сказал вам использовать их, просто пытался взломать какое-то сломанное программное обеспечение плеера... и плохо.
Ваша ссылка указывает на файл плейлиста m3u. Для <audio>
Для работы элемента необходимо указывать непосредственно на поток, а не на его файл списка воспроизведения.
В этом случае это означает, что в конце нужно удалить ".m3u".