使用闪存解决方案无法触发Jplayer Ready功能

时间:2013-10-12 22:21:58

标签: jquery jplayer

我正在使用Jplayer(2.2.0& jquery 1.6)在我的应用程序中播放音频文件。音频必须使用闪存解决方案。但是当解决方案选项设置为闪存时,不会触发就绪功能,因此当我播放文件时会出现错误。

当针对此问题进行googgled时,建议的解决方案是检查.swf文件的路径。路径是正确的。通过Newtwork选项卡(chrome developer tool)对此进行了双重检查。在网络选项卡中,下载.swf文件时没有任何错误。

<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function(){

        jQuery("#jquery_jplayer_1").jPlayer({
            ready: function () {
                jQuery(this).jPlayer("setMedia", {
                    mp3: "http://www.happyworm.com/audio/mp3/Miaow-07-Bubble.mp3"
                }).jPlayer("play",40);
            },
            swfPath:"js/",
            ended: function (event){ 
                jQuery(this).jPlayer("play",20);
            },
            supplied:"mp3",
            solution:"flash,html",
            volume: .50,
    wmode:"window"
            //preload: 'auto'
        });


jQuery("#jquery_jplayer_N").bind(jQuery.jPlayer.event.error, function (event) {
    switch (event.jPlayer.error.type) {
        case jQuery.jPlayer.error.URL:
            console.log("error file");
            break;
        case jQuery.jPlayer.error.NO_SOLUTION:
            // Do something
            console.log("NO_SOLUTION");
            break;
    }
    console.log(event.jPlayer.error.type);
});
    });

<body>

    <div id="jquery_jplayer_1" class="jp-jplayer"></div>

    <div id="jp_container_1" class="jp-audio">
        <div class="jp-type-single">
            <div class="jp-gui jp-interface">
                <ul class="jp-controls">
                    <li><a href="javascript:;" class="jp-play" tabindex="1">play</a></li>
                    <li><a href="javascript:;" class="jp-pause" tabindex="1">pause</a></li>
                    <li><a href="javascript:;" class="jp-stop" tabindex="1">stop</a></li>
                    <li><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a></li>
                    <li><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a></li>
                    <li><a href="javascript:;" class="jp-volume-max" tabindex="1" title="max volume">max volume</a></li>
                </ul>
                <div class="jp-progress">
                    <div class="jp-seek-bar">
                        <div class="jp-play-bar"></div>
                    </div>
                </div>
                <div class="jp-volume-bar">
                    <div class="jp-volume-bar-value"></div>
                </div>
                <div class="jp-time-holder">
                    <div class="jp-current-time"></div>
                    <div class="jp-duration"></div>

                    <ul class="jp-toggles">
                        <li><a href="javascript:;" class="jp-repeat" tabindex="1" title="repeat">repeat</a></li>
                        <li><a href="javascript:;" class="jp-repeat-off" tabindex="1" title="repeat off">repeat off</a></li>
                    </ul>
                </div>
            </div>
            <div class="jp-title">
                <ul>
                    <li>Cro Magnon Man</li>
                </ul>
            </div>
            <div class="jp-no-solution">
                <span>Update Required</span>
                To play the media you will need to either update your browser to a recent version or update your <a 
href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a></div></div>
</div>
</body>

1 个答案:

答案 0 :(得分:4)

检查你的风格。如果您的#jquery_jplayer_1或其父级有display = none,则ready事件永远不会在诸如opera或firefox之类的浏览器中触发。我的意思是无法隐藏flash对象。