带有 Icecast 流的 jPlayer:暂停后如何从实时位置(不是最后一个位置)播放流?
jPlayer with Icecast stream: how to play stream from live position (not last position) after pause?
我有a website that plays an icecast stream with jPlayer.
我希望 play
按钮始终从实时位置(如收音机)开始播放流,而不是从最后一个位置重新开始播放。尝试的行为:
play
实时播放流 > pause
暂停/丢弃流/可选择停止下载 > play
从实时位置播放流/重新加载流。
如 comment on this post 所述,有一种方法可以使用 $.jPlayer.event.timeupdate
监视当前媒体位置,并使用它从流的末尾继续播放。
或者,必须有一种方法可以在暂停时丢弃流,然后在再次点击 play
时重新加载它。我认为这就是 this jPlayer demo 上发生的事情。但我不知道该怎么做:
The error event is used with a check for the URL_NOT_SET error type to jPlayer("setMedia",stream) back to the live-stream again and jPlayer("play") it.
我是 javascript 的新手,无法使用它。我找不到另一个 post 试图这样做的人。我尝试使用 100 的“播放头”,它根本不启动流。
这是我使用的代码:
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
mp3: "http://realbadradio.ddns.net:21000/mpd.mp3"
})
},
});
});
//]]>
</script>
Here the repo 到我的网站获取完整代码。
由于 在与在 jPlayer 中实现自动播放相关的不同问题上,我终于找到了解决方案。
解决方案
$(document).ready(function(){
const stream = {
// stream address
mp3: 'http://realbadradio.ddns.net:21000/mpd.mp3'
};
ready = false;
$("#jquery_jplayer_1").jPlayer({
ready: function () {
ready = true;
$(this).jPlayer("setMedia", stream);
},
pause: function() {
$(this).jPlayer("clearMedia");
},
error: function(event) {
if(ready && event.jPlayer.error.type === $.jPlayer.error.URL_NOT_SET) {
// Setup the media stream again and play it.
$(this).jPlayer("setMedia", stream).jPlayer("play");
}
},
keyEnabled: true,
preload: 'none',
});
});
我有a website that plays an icecast stream with jPlayer.
我希望 play
按钮始终从实时位置(如收音机)开始播放流,而不是从最后一个位置重新开始播放。尝试的行为:
play
实时播放流 > pause
暂停/丢弃流/可选择停止下载 > play
从实时位置播放流/重新加载流。
如 comment on this post 所述,有一种方法可以使用 $.jPlayer.event.timeupdate
监视当前媒体位置,并使用它从流的末尾继续播放。
或者,必须有一种方法可以在暂停时丢弃流,然后在再次点击 play
时重新加载它。我认为这就是 this jPlayer demo 上发生的事情。但我不知道该怎么做:
The error event is used with a check for the URL_NOT_SET error type to jPlayer("setMedia",stream) back to the live-stream again and jPlayer("play") it.
我是 javascript 的新手,无法使用它。我找不到另一个 post 试图这样做的人。我尝试使用 100 的“播放头”,它根本不启动流。
这是我使用的代码:
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
mp3: "http://realbadradio.ddns.net:21000/mpd.mp3"
})
},
});
});
//]]>
</script>
Here the repo 到我的网站获取完整代码。
由于
解决方案
$(document).ready(function(){
const stream = {
// stream address
mp3: 'http://realbadradio.ddns.net:21000/mpd.mp3'
};
ready = false;
$("#jquery_jplayer_1").jPlayer({
ready: function () {
ready = true;
$(this).jPlayer("setMedia", stream);
},
pause: function() {
$(this).jPlayer("clearMedia");
},
error: function(event) {
if(ready && event.jPlayer.error.type === $.jPlayer.error.URL_NOT_SET) {
// Setup the media stream again and play it.
$(this).jPlayer("setMedia", stream).jPlayer("play");
}
},
keyEnabled: true,
preload: 'none',
});
});