酒徳です。このごろは、食べ物が美味しい季節です。おかげで、ダイエット宣言しているのに、さっぱり体重が落ちません。困ったものです。
さて、今回は、JavaScriptから任意のタイミングでMP3を再生する方法について書いてみようと思います。
Webを見ていると、マウスで画像をクリックするとピコッ音が鳴るサイトがあります。「どうやって実現しているのだろうか?」と思ってソースを見てみると、Flashだったりします。そして、「そうか、Flashなら簡単に鳴らせて当然だよなぁ」と思います。
しかし、Flashは、JavaScriptほど手軽ではありません。Flash開発のための環境を整えて、コンパイルして・・・と意外と労力がかかります。たかだか、「ピコッ」と効果音を鳴らしたいだけのために、そんな苦労をするのは、割に合いません。
そこで、先日私が作ったのが、soundapi.js です。このライブラリを使うと、以下のような感じで手軽にMP3ファイルを再生できます。<!-- soundapi.setup -->
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="soundapi.js"></script>
<!-- sample -->
<a href="javascript:soundapi.playFile('pi.mp3')">play</a>
上の数行が、ライブラリをインクルードしている部分です。そして、最後の一行がJavaScriptでMP3ファイルを再生しています。
soundapi.playFile(ファイル名)だけでMP3が再生できるので簡単です!
ライブラリの仕組みは極めて単純で、まず、soundapi.jsを取り込むと、音声再生用の1pxのサイズのFlashファイルを画面の端に表示します。そして、soundapi.playFile(ファイル名)
で、JavaScriptからFlashの関数を呼びだします。(JavaScriptからFlashの関数を呼ぶのには、Flash8で導入された、External
APIと機能を利用しました。)
以下に soundapi.js を置いておきますので、興味のある方は使ってみてください!
※利用上の注意ですが、Flashのセキュリティの関係で、ローカル環境では音が再生されない場合があります。そんな時は、Flash Playerの設定を変更するか、Webにアップして試してみてください。