Soundmanager 360Ui有时在刷新页面后没有初始化

时间:2014-07-22 19:26:38

标签: javascript jquery html soundmanager2

我试图用soundmanager 2初始化一个360Ui音频播放器。 在第一页加载中,玩家按照预期出现。然后,如果我使用Ctrl + R刷新页面或通过单击刷新按钮,声音管理器似乎不会被初始化。

我创建了这些div:

<div id="pl1" class="ui360" >
    <a id="a1" href="#"></a>
</div>

<div id="pl2" class="ui360">
    <a id="a2" href="#"></a>
</div>

<div id="pl3" class="ui360">
    <a id="a3" href="3"></a>
</div>

并在main.js上加载页面时将执行此代码。

$(function(){
     $('#designed-by,#pl1,#pl2,#pl3').hide();
     // Loading audio players.
     loadpls();
     soundManager.setup({url:'../audioPlayer/soundmanager/swf'});
});

这里还有loadpls()函数:

function loadpls(){
    // Loading audio players
    $.ajax({
        url: '../admin/classes/classController.php',
        type: 'POST',
        data: {method:'loadAudioPl'},
        dataType: 'json',
        error: function(jqXHR, error, errorThrown){console.log(jqXHR+" "+error+" "+errorThrown);},
        success: function(json){
            if(json.status == 1){
                if(json.url1 != ''){
                    $('#a1').attr("href", json.url1);
                    $('#pl1' ).offset({top: json.y1, left: json.x1});
                    $('#pl1').show();
                }

                if(json.url2 != ''){
                    $('#a2').attr("href", json.url2);
                    $('#pl2' ).offset({top: json.y2, left: json.x2});
                    $('#pl2').show();
                }

                if(json.url3 != ''){
                    $('#a3').attr("href", json.url3);
                    $('#pl3' ).offset({top: json.y3, left: json.x3});
                    $('#pl3').show();
                }             
           }
        }
    });

} 

确定。让我们假设它是我们第一次访问该页面。我们在玩家的图标中制作一个“检查元素”。通过查看上面的代码,我们可以看到soundmanager已成功初始化:

<div id="pl1" class="ui360" style="display: block; top: 0px; left: -100px; background-image: none;">
<div class="sm2-360ui">
<canvas class="sm2-canvas" width="50" height="50"></canvas> 
<span class="sm2-360btn sm2-360btn-default"></span> 
<div class="sm2-timing alignTweak"></div> 
<div class="sm2-cover"></div>
</div><a id="a1" href="http://dev.phoebe/audioPlayer/soundmanager/_mp3/rain.mp3" class="sm2_link"></a>
</div>

有些时候,如果我们刷新该页面,音频播放器就会消失,现在页面中某处的'inspect element'结果显示了这一点:

<div id="pl1" class="ui360" style="display: block; top: 0px; left: -100px; background-image: none;">
    <a id="a1" href="http://dev.phoebe/audioPlayer/soundmanager/_mp3/rain.mp3"></a>
</div>

我将这种行为翻译为声音管理器的非启动,但我无法进一步解释。此外,我考虑的其他事情是,如果我让控制台(Ctrl + Shift + I)打开,播放器在刷新后会出现更多次。

1 个答案:

答案 0 :(得分:0)

所以最后似乎我修好了它。 这是如何。

soundmanager的初始化确实存在问题,可能是因为我使用了这样的代码:

<div id="pl1" class="ui360" >
  <a id="a1" href="#"></a>
</div>

这里的问题是在href=""属性中没有.mp3扩展文件,这就是为什么soundmanager无法初始化。因此,通过将代码更改为上面的代码,不存在test.mp3,似乎按预期工作。

<div id="pl1" class="ui360" >
    <a id="a1" href="test.mp3"></a>
</div>