0

他のユーザーがサイトにアップロードした音楽のプレイリストをユーザーが再生できる、自分のサイト用のポップアップ プレーヤーの作成に取り組んでいます。<cfmediaplayer>ただし、現在、各トラックを手動でクリックして再生する必要があります。プレイリストの次の曲を自動的に再生するを誰かが作成できたのではないかと思っていました。現在再生する曲を知る方法は、ユーザーがクリックしたトラック名を送信する url 変数内で定義され、データベースを呼び出して一致するかどうかを確認し、ソースを使用してその場所を出力します。保存したトラック。私がやっていることをより明確に示すために、コードを投稿します。

<cfquery datasource="#mydatabase#" name="getsongs">
    Select *
    From artists, songs
    Where artist_id = song_artistid
</cfquery>

<cfif IsDefined("URL.song")>
    <cfquery datasource="#mydatabase#" name="playsong">
        Select *
        From songs
        Where artist_id = song_artistid
        And song_name = '#URL.song#'
    </cfquery>
</cfif>

<div style="margin: 0 auto; width: 800px;>
    <div style="width: 300px; float: left; overflow: scroll;">
        <cfoutput query="getartists">
            <a href="popup_player.cfm?song=#song_name#>#artist_name# - #song_name#</a>
        </cfoutput>
    </div>

    <cfif IsDefined("URL.song")>
        <div style="width: 500px; float: right;">
            <cfoutput>
                <cfmediaplayer name="song" source="artists/songs/#playsong.song_location#" autoplay="yes" height="500" width="500"></cfmediaplayer>
            </cfoutput>
        </div>
    </cfif>
</div>

ご覧のとおり、ユーザーのプレイリストに含まれるすべての曲をリストするスクロール div があります。曲をクリックすると、メディア プレーヤーで再生されるトラックが更新されます。とにかく、曲の終了時に次のリンクが自動的にクリックされ、最後のトラックに到達したときにプレイリストを繰り返すように変数が設定されている場合、最初のトラックに戻る方法があるかどうか疑問に思っていました。

4

3 に答える 3

1

CFMEDIAPLAYER のリファレンス ガイド ( http://help.adobe.com/en_US/ColdFusion/10.0/CFMLRef/WSE66DB0CD-E16D-49e7-AAEE-F51F9580554E.html ) を参照してください。トラックの終了時に JavaScript を実行するためのサポートがあります。それを使用して、次のトラックを自動的に呼び出すことができます。

于 2013-04-12T11:42:40.040 に答える
0

わかりました。cfmediaplayer を使用したことはありませんが、この疑似コードを使用すると、必要な場所に移動できるはずです。

これらは私が使用したリソースです。

  1. ColdFusion で JavaScript と CFMEDIAPLAYER タグを使用してビデオを動的に開始および停止する
  2. ColdFusion.Mediaplayer.setSource
  3. cfmediaplayer

<cfquery ...>
Select
   songUrl
from
   songs
</cfquery>
<!--- build your coldFusion array of song URLs --->
<cfset urlList = valueList(query.songURL)>
<cfset urlArray = listToArray(urlList)>

<script>
    <cfoutput>
    #toScript(urlArray)#
    var songIndex = #query.currentRow-1#; <!--- or url.currentRow, whatever you're using --->
    </cfoutput>
    startNext(){
        songIndex++;
        if(songIndex <= urlArray.length){                
            ColdFusion.Mediaplayer.setSource('mediaPlayerName', urlArray[songIndex]);
            ColdFusion.Mediaplayer.startPlay('mediaPlayerName');
        }
    }
</script>

于 2013-04-12T15:05:48.343 に答える
0

曲の終了時に JavaScript を実行できます。現在のコードに追加します。

 <cfmediaplayer onComplete=" YOUR_PLAY_NEXT_FUNCTION"  name="song"
 source="artists/songs/#playsong.song_location#" autoplay="yes"
 height="500" width="500"></cfmediaplayer>

コメントから追加

試したことはありませんが、効果はありますか?

var i = 0; // This should be the current song_no 
$("#button").on('click', function(){ 
    // Adds +1 to the current song number
    i++  
    // Create a variable using the standard url + the added song-number
    var curr_song = "artists/songs/#playsong.song_location#"+i;  
    // Changes the attribute to the new song-url 
    $('cfmediaplayer').attr("name",curr_song); 
});
于 2013-04-12T11:52:11.090 に答える