JDBな人生  専門的なことから日常的なことまで~ まぁ自由きままに書いていきます。
2017年10月 / 09月<< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>11月

アクセスランキング

[ジャンルランキング]
コンピュータ
231位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
35位
アクセスランキングを見る>>

IE&Firefoxでの音声の再生

今日、とある場所で利用しているチャットっぽい掲示板のスクリプトの修正をしていました。

そこで、投稿時にサウンドを再生する機能というか強制的に再生させる機能をつけたんですが、IEとFirefoxで利用する機能が異なって色々と大変でした。
(JDBはあまりライブラリに頼らず無駄に努力をすることがよくあります。無駄な努力をすることって結構楽しいんですよ。)

特に、IEにはサウンドを再生する関数はありませんからね。
(最新のものがどうだか知りませんが、利用する環境ではIE7なので)

調べてみたところ、BGMの再生に使う「bgsound」タグを利用すれば再生できることがわかりました。

Firefoxの場合は、HTML5で追加される再生機能(Audio要素)を使うことに。
(古いバージョンでは対応できませが・・・。)



(対応ファイル)
IE
mp3,wma,wav,mid
IE5-IE9で確認済みです。(IE9プレビュー版にて)

Firefox
wav
バージョンは3.6.1.2です。

サウンド再生.html

一瞬しか鳴らないので連打して頂いて結構です。
(サーバーにあまり負担がかからない程度に)

IEならデスクトップ等のローカルファイルも再生できると思います。


ソースは以下の通りです。

<script type="text/javascript">
        var isIE = false;
        var soundPlayElement;
        if(navigator.userAgent.indexOf("MSIE") != -1) {
                isIE = true;
                document.open();
                document.write("<bgsound id='soundDataPlayer' src='' loop='1'>");
                document.close();
        }
        function playSoundData(dataUrl){
                if(isIE){
                        javascript:soundDataPlayer.src = dataUrl;
                } else {
                        soundPlayElement = new Audio(dataUrl);
                        soundPlayElement.play();
                }
        }
        function stopSoundData(){
                if (isIE){
                        javascript:soundDataPlayer.src = "";
                } else {
                        soundPlayElement.pause();
                }
        }
</script>

<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>サウンド再生</title>

<form name="SP">
        <input type="text" size="20" name="FN" value="http://soft.g-c-c.info/JDB/se3.wav">
        <input type="button" value=" 再生 " onclick='var fnt = document.SP.FN.value; playSoundData(fnt);'>
        <input type="button" value=" 停止 " onclick='var fnt = document.SP.FN.value; stopSoundData();'>
</form>

<pre>

再生
playSoundData(ファイル名);

停止
stopSoundData();

</pre>




利用したい方は勝手に引用してください。

まあ引用するほどのものでも無いかもしれませんが・・・・・。

サンプルに使用したファイルは↓のサイトから借りました。

フリー音楽素材 H/MIX GALLERY
http://www.hmix.net/
 


 
   JavaScript    TB(0)    CM(0)    EDIT    ページ↑

コメント投稿


 管理者だけに表示

コメント

トラックバック

この記事へのトラックバック:

プロフィール

JDB Luigi

Author:JDB Luigi
どこにでもいるようなありふれた人間・・・という訳でもなく、かと言って怪しい宗教を信仰する変人という訳でも無い。

基本的に掲載しているコード等は煮ていただいても焼いていただいても結構ですが、利用は自己責任にてお願いいします。
また、バグ・アドバイス等もしあればよろしくお願いします。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。