Chrome 不会播放 Icecast 流媒体 link

Chrome won't play Icecast streaming link

所以我有这段代码可以打开我自己制作的“'player'”。但是当播放器打开时没有声音出来,以前从未发生过。可能是什么原因。当用 Chrome 打开时,无论播放器如何打开都没有声音,不管它会弹出,还是 link 粘贴到 url bar.Do 你知道吗?

你可以在这里查看我的播放器: 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>

这个播放器发出声音的是"play button"。难道我需要在我的流中添加 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>

而且也没用。

您的 link 指向 m3u 播放列表文件。要使 <audio> 元素起作用,您需要直接指向流,而不是其播放列表文件。

在这种情况下,这意味着在末尾删除“.m3u”。

@TBR的回答是正确的,但我想详细说明一下。

回到过去,在 HTML5 音频之前,在基于 Flash 的体面播放器之前,需要有一种方法来单击 link 浏览器并启动安装在系统。 (当然,有插件,但每个站点都必须有不同的插件很烦人!另外,在收听时让浏览器保持打开状态是不可取的。)

一个简单的方法是 link 到 播放列表文件 。这是一个非常小的文件,基本上只包含实际流的 URL。典型的 M3U 播放列表如下所示:

#EXTM3U

#EXTINF:-1, Stream Title
http://example.com/stream

传统上,当 links 指向这个播放列表文件时,他们会立即在注册处理 M3U 播放列表的播放器中打开它。在这种情况下,播放器将从那里解析播放列表并直接连接到 URL、http://example.com/stream

今天,我们可以使用 <audio> 标签直接在浏览器中加载音频流。浏览器的 <audio> 标签不使用播放列表文件。它需要流 URLs 原样。

在您的示例中,实际流的 URL 是 http://newfmplayer.ddns.net:8000/newfm128

在您自己的回答中,您试图添加伪造的扩展名等。这些都不是必须的。你不应该使用它们。任何告诉您使用它们的人都只是想破解一些损坏的播放器软件……而且很糟糕。