jQueryプレイヤーの新バージョンを公開しました。JeeGooContextプラグインを使用し、いくつか機能が追加されています。
jQueryとSoundManeger 2 で簡易音楽プレイヤーを作ろう
以前Prototype.jsとSoundManager2で作成したミュージックプレーヤーを、jQueryのプラグインに置き換えてリメイクしました。 サンプルはこちら
SoundManager2はここからダウンロードできます。
まずはセットアップ
このスクリプトではjQueryとjQuery Context Menuというライブラリを利用しています。
jQueryはここから、(バージョンは最新のv1.4.1以上を利用してください)
jQuery Context Menuはこのページからダウンロードできます。
 
jQuery Context Menuに関しては、JavaScriptファイル
とCSSファイルがそれぞれ必要になります。
ファイルを用意したら、まずjQuery、jQuery Context Menu、SoundManager2のJSファイルと、soundmanager2.swfというFlashファイル、
そしてjQuery Context MenuのCSSファイルをアップロードします。
次にHTMLのheadタグ内にSoundManager2以外のJSファイルと、jQuery Context MenuのCSSファイルを記述します。(ファイルパスの変更も忘れずに)
ちなみにjQueryはパッケージに圧縮版(70K程度)が用意されているので、サイズが気になる人はこちらを使うといいと思います。
音楽ライブラリを作成する
音楽データなどの設定を行う
Prototypeバージョンではプレイヤー用スクリプトと音楽ファイル用を分けていましたが、jQuery版では一緒にすることにしました。 次のJSファイルをダウンロードしてエディタで開いてください。
プレイヤーと音楽データのファイル
(10/02/07 IEをBGSOUNDではなくFlash優先にするバージョンへ変更)
ファイル内で変更するべき箇所は最初の方に集中していて、ひとつは"m"というオブジェクトに格納する変数、
もうひとつは"data"という配列に格納するオブジェクト群です。"audioImg"の配列には、 オーディオの再生/ミュートの
切り替えボタンとなる画像データを設定します。
ここで使用している画像はICONFINDERというサイトでダウンロードできます。
その他にsoundmanager2のJSファイルや、soundmanager2.swfのFlashファイル、音楽ファイルなどが置かれているフォルダのパスを書き換えます。 フォルダまでのパスを記述する際は最後に"/"が必要です。なお、soundmanager2にもデバッグ機能を削った圧縮版(25K程度)があります。
音楽データについては、すべてJSON(オブジェクト)形式で登録するようになっています。 BGMとsoundの区分がありますが、基本的にBGMの配列内にデータを記述します。sound(効果音)はいらないという人がほとんどだと 思います。その場合でも、下に示すようにsoundという配列は残すようにしてください。
それぞれの音楽データには、"name"と"url"というプロパティが設定可能で、"name"には"MUSIC01"といった曲名を設定し、 "url"には"music01.mp3"のように「ファイル名.mp3」(パスの記述は不要)を設定します。登録した音楽ファイルについては、 アップロードされているかどうかも確認してください。また、いくつでも音楽ファイルを追加することができますが、 配列やオブジェクトの最後の要素でコンマをはずし忘れると、IEなどでエラー扱いになるので注意が必要です。
プレイヤーアイコンは初期状態ではサイトの画面左上に出てしまいます。
プレイヤーを特定の要素のなかに置きたいという場合は、その要素にID属性名を設定して、
上記のコードの46行目で、$('body:first')の部分をその要素指定のものに書き換えます。たとえば、
その要素のID属性が"id_name"ならば、次のようになります。
アイコンの画像サイズはデフォルトで縦横32×32となっているので、もし別のサイズの画像を使う場合、以下のコードを変更する必要があります。
leftプロパティやtopプロパティでアイコンの位置を変えたいという人がいるかもしれません。しかし、jQueryバージョンでは アイコン元の要素のpositionプロパティをrelativeやabsolute にすると右クリックしたときにメニューが正常な位置に出てこない という問題があったため、位置は変更しないようにしています。
プレイヤーの設定は以上で終了です。設定を終えたjquery_music.jsを他のファイルと同様にアップロードした上でHTML内に埋め込みます。
メニューのデザインをカスタマイズする
右クリック時に開くメニューの外観をカスタマイズしたいときは、CSSファイルのjquery.contextMenu.cssを書き換えます。 ただし、最初から用意されているメニュースタイルが一つしかないため、デフォルトのスタイルを参考に新たにデザインしなければ なりません。ここではPrototypeバージョンで利用したProto.Menu.cssのデザイン二つを引っ張って くることにしましょう。jQuery向けに若干修正したものを次に示します。
CSSファイルはここからダウンロードすることもできます。
FirefoxとGoogleのデザイン
デザインの適用方法は、jquery_music.jsコード内の一箇所を書き換えるだけです。120行目あたりに 以下のような部分があるので、リストタグのクラス名を変更するaddClass()メソッドの引数を、 "contextMenu_firefox"や"contextMenu_google"など任意のものに変更します。
プレイヤーの操作方法
最後にプレイヤーの操作方法について説明します。画面のロードが終了すると、画面上に次のようなアイコンが出てくるはずです。
このアイコンが音量のオンオフを制御します。左クリックすると音楽再生が始まり、もう一度押すと再生が停止します。
曲目を選択するにはアイコン上で右クリックです。プレイリストが出てくるのでこの中から選択してください。ただし、Operaブラウザではうまくいかないようです。Ctrlキーを押しながら試してみてください。
プレイヤーのサンプル
Music By TAM & 煉獄庭園 & 01SoundEarth