0

自分が運営している音楽ブログ用のオーディオプレーヤーを作成していますが、ウェブサイトでjPlayerを正しく動作させることができないようです。現在、(機能していないため)管理者のみがプレーヤーを表示できるように設定していますが、私が何を意味するのかがわかるように、小さなテストWebサイトを作成しました。

プレーヤーはFirefoxで正常に動作しますが、Chromeでは正しく動作しません。Firefoxで使用しているフラッシュフォールバックと関係があるように感じますが、Chromeでも機能しない理由がわかりません。曲をロード/ストリーミングしたくないようです。

表示しているページに曲を動的に追加できるように、いくつかの関数を作成しました。私はすべてを正しく設定していると信じています。曲のタイトルとMP3へのURLに配列を使用し、WordPressによって動的に追加されます。新しい曲が追加されるたびに、以下のJavaScript関数add_songを呼び出します...

function add_song(title, mp3)
{
    theTitles[index] = title;
    theMP3s[index] = mp3;
    index++;
}

次に、document.ready関数について、get_playlist()と呼ばれる別の関数を使用してjPlayerを設定しました。

function get_playlist()
{
    var playlist = new Array();

    for(var i = 0; i < theTitles.length; i++)
    {
        playlist[i] = {title: theTitles[i], mp3: theMP3s[i]};
    }
    return playlist;
}

$(document).ready(function()
{
    var playlist = get_playlist();
    new jPlayerPlaylist({
        jPlayer: "#jquery_jplayer_1",
        cssSelectorAncestor: "#jp_container_1",
        oggSupport:false
    }, playlist, {
        swfPath: "/js",
        supplied: "mp3",
        wmode: "window"
    });
});

ChromeではなくFirefoxで動作する理由について簡単なことを見逃しているように感じますが、それが何であるか理解できません。ただし、実際の投稿の再生ボタンを押して曲の1つを再生し始め、それを停止してから、トッププレーヤーで再生しようとすると、正常に機能します。たとえば、トッププレーヤーで最初の曲を再生しようとすると、機能しません。次に、実際のSeasfire投稿の再生ボタンをクリックして一時停止し、トッププレーヤーをもう一度試してみると機能します。これがテストサイトへの私のURLです。質問がある場合は、プレーヤーを自分で表示できます。

みんなとギャルに感謝します!

4

1 に答える 1

0

現在、stackoverflow でログインできませんが、元の投稿者は私です。

インデックスは使用する前に定義および初期化されるため、それは問題ではありません。そのために使用するJavaScript全体は...

<script type="text/javascript">

    var index = 0;
    var theTitles = new Array();
    var theMP3s = new Array();

    function add_song(title, mp3)
    {
        theTitles[index] = title;
        theMP3s[index] = mp3;
        index++;
    }

    function get_playlist()
    {
        var playlist = new Array();

        for(var i = 0; i < theTitles.length; i++)
        {
            playlist[i] = {title: theTitles[i], mp3: theMP3s[i]};
        }
        return playlist;
    }


    $(document).ready(function()
    {
        var playlist = get_playlist();
        new jPlayerPlaylist({
            jPlayer: "#jquery_jplayer_1",
            cssSelectorAncestor: "#jp_container_1"
        }, playlist, {
            swfPath: "/js",
            supplied: "mp3",
            wmode: "window"
        });
    });
    //]]>
    </script>
于 2013-01-29T22:19:27.730 に答える