通过SoundManager2流式传输webradios已经很长时间了

时间:2014-04-18 14:14:00

标签: streaming html5-audio soundmanager2

我正在开发一个小的javascript片段,允许用户使用soundManager2在流媒体中收听webradio。通过给这个片段提供一个URL,该流向我发送音乐,因此很酷,它可以工作。

是的,但是......

对URL的查询可能非常长(超过2-3分钟!)。我想知道是否有一个解决方法或选项,我可以用来更快地进行此查询。 为什么,用Windows Media Player打开我的m3u(里面只包含mp3 URL),加载最多花费5-10秒,而在浏览器或使用soundManager2访问相同的URL是2-3分钟,有时更多?

这是jsFiddle尝试使用OuïFM(法国电台)。这个收音机的等待时间大约是115秒。

var url = 'http://ice39.infomaniak.ch:8000/ouifm3.mp3';
var time = 0;    
var timing = setInterval(function() {
    $('#Streaming').html((time / 10) + ' seconds.');
    time++;
}, 100);
var start = new Date;
soundManager.onready(function() {
    soundManager.createSound({
        id:'Radio', 
        url:url, 
        autoLoad: true,
        autoPlay: true,
        multiShot: false,
        onload: function() {
            $('#Loading').css('display', 'none');
            clearInterval(timing);
        }
    });
});

1 个答案:

答案 0 :(得分:1)

你的小提琴坏了,因为SoundManager2的javascript没有正确加载。在我修复了(以及你的一些代码)后,我能够在一秒钟内播放音频:http://jsfiddle.net/y8GDp/

var url = 'http://ice39.infomaniak.ch:8000/ouifm3.mp3';
var time = 0;
var timer = $('#Streaming');
var loading = $('#Loading');
var start = new Date;
var seconds = function(){
    var diff = ((new Date).getTime() - start.getTime()) / 1000;
    return diff + ' seconds.';
};
var timing = setInterval(function() {
    timer.html(seconds());
}, 100);
soundManager.onready(function() {
    soundManager.createSound({
        id:'Radio', 
        url:url, 
        autoPlay: true,
        onplay: function() {
            clearInterval(timing);
            loading.html('Finished loading');
            timer.html(seconds());
        }
    });
});