0

サウンドマネージャー2で音楽を再生する機能があり、ボタンを押して次のサウンドをロードすると機能しますが、機能を介してこれを実行しようとするとonfinish機能しません。つまり、音楽の再生が終了しても機能しません。次のサウンドをロードします。これを機能させるにはどうすればよいですか。以下のコードを参照してください。

function playSong(id) {
//Stop the sound from playing
soundManager.destroySound(mySound);

//If we're under, just go to the end!
if (id < 0)
    id = songs.length - 1;

//If we're over, choose what to do via the repeat flag
if (id >= songs.length)
        id = 0;

//Save some variables
playingSongId = id;
playingSong = songs[playingSongId];
track = playingSong.artist_name + " " + "-" + " " + playingSong.track_name;

//Create the sound and begin playing whenever!
soundManager.createSound({
    id: mySound,
    url: playingSong.track_url,
    multiShotEvents: true,
    autoPlay: true,
    stream: true,
    onplay: function () {
        setPlayingInfo(track);
        setPauseState(false);
        setPlayTime();

    },
    onfinish: function() {
        playNextSong();
        /*//We'll only continue if we're shuffling or repeating if we past the end...
        if (shuffle == false && (playingSongId + 1 >= songs.length) && repeat == false) {
            //No more songs...
            setPlayingInfo();
            setPauseState(false);
            setPlayTime();
            playingSong = null;
            playingSongId = null;
            return;
        }
        else {
            playNextSong();
        }*/
    },

この関数は、次のサウンドのタイトルがヘッダーに表示されるため機能しますが、曲は再生されません。最後に、サウンドのロードと再生中に最初のサウンド リンクをクリックすると、タイトルがロードされませんが、ボタンをクリックして次のサウンドをロードすると、タイトルが表示されます。サウンドはリモート サーバー上にあるため、これらのサウンドを ajax 経由でロードしていることに注意してください。

4

1 に答える 1