jPlayer中的随机流链接

时间:2012-12-20 20:35:43

标签: javascript jquery jplayer

我有一个连接到shoutcast / icecast源的moded jPlayer。

我想让jPlayer在打开页面时随机连接2个或更多个url。

例如,如果我有2个链接:

  1. www.example.com:8000/live
  2. www.example.com:8000/live2
  3. 然后我需要jPlayer在打开页面时随机选择其中一个。 目的是防止一台服务器上的过载。

    我应该如何在jQuery代码中使用它?

    jQuery的:

    $("#jquery_jplayer_1").jPlayer({
            ready: function(event) {
                $(this).jPlayer("setMedia", {
                    mp3: "http://www.example.com:8000/live"
                }).jPlayer("play");
            },
            swfPath: "js/",
            wmode: "window",
            solution: "flash,html",
            supplied: "mp3",
            preload: "none",
            volume:0.75,
            cssSelectorAncestor: "",
            cssSelector: {
                    play: "#play",
                    pause: "#pause"
            }
        });
    
        $("#jquery_jplayer_1").bind($.jPlayer.event.pause, function(event) {
            $(this).jPlayer("clearMedia");
            $(this).jPlayer("setMedia", {
                    mp3: "http://www.example.com:8000/live"
            });
        });
    

2 个答案:

答案 0 :(得分:2)

回答您的问题,您可以执行以下操作。

var servers = ["www.example.com:8000/live", "www.example.com:8000/live2"];
var server = servers[Math.floor(Math.random() * servers.length)];

$(this).jPlayer("setMedia", {
  mp3: server
});

尽管这不是解决您真正问题的最佳方式:

  

目的是防止一台服务器过载。

您应该考虑使用load balancing

答案 1 :(得分:1)

您可以使用服务器端语言或javascript获取X随机网址之一。然后只需将随机值传递给mp3:

var randomUrl = getRandomUrl();
$("#jquery_jplayer_1").bind(...) {
       mp3: randomUrl;
}