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".

Другие вопросы по тегам