unoh.github.com

JavaScriptからMP3ファイルを再生する方法

Wed Nov 01 18:40:21 -0800 2006

酒徳です。このごろは、食べ物が美味しい季節です。おかげで、ダイエット宣言しているのに、さっぱり体重が落ちません。困ったものです。

さて、今回は、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 を置いておきますので、興味のある方は使ってみてください!

→soundapi.zipをダウンロード

※利用上の注意ですが、Flashのセキュリティの関係で、ローカル環境では音が再生されない場合があります。そんな時は、Flash Playerの設定を変更するか、Webにアップして試してみてください。