28
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MP3を再生するjavascript(audio.js)のメモ

Last updated at Posted at 2013-07-23

#audio.js

MP3を再生するjs。HTML5です。IE7,8では動かなかったです(当然か)

audiojs_img.PNG

参考にしたサイト
ダウンロード
上記サイトからダウンロードしてそれっぽいところに置く
audiojs.swfはaudio.min.jsと同じディレクトリに置いた

<head>タグ内で呼び出し

head
<script type="text/javascript" src="/js/audio.min.js"></script>
<script>
  audiojs.events.ready(function() {
    var as = audiojs.createAll();
  });
</script>

プレイヤーを表示させたいところに<audio>タグを置く

プレイヤー
<audio src="/mix/1.mp3" preload="auto" />

これでとりあえずは音が鳴る
でも今回はプレイヤーを表示させずに音楽をただひたすらループさせたかったので改造

<audio>タグ内にloopって書くとループになるみたい。
プレイヤーを非表示にする方法がよくわからなかったので、とりあえず<div>タグで囲ってCSSでdisplay:none;にした。

プレイヤーを消して音楽はループ
<div style="display:none;">
<audio src="/mix/1.mp3" preload="auto" loop />
</div>

さらに、自分で作ったボタンでスタート・ストップを制御したい
さらにさらに、キーボードでもスタート・ストップを制御する

headタグ内
<!-- jQuery 召喚 -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
  jQuery(function() { 
    var a = audiojs.createAll();
    var audio = a[0];
    
    // 自作ボタンでの制御
    jQuery('.play').click(function(e) { audio.play(); });
    jQuery('.pause').click(function(e) { audio.pause(); });
    
    // キーボードでの制御
    jQuery(document).keydown(function(e) {
      var unicode = e.charCode ? e.charCode : e.keyCode;
      // Zキーを押すとスタート
      // Eキーを押すとストップ
      if (unicode == 90) {
        audio.play();
      } else if(unicode == 69){
        audio.pause();
      }
    })
  });
</script>
スタート・ストップボタン
<button class="play">スタート</button>
<button class="pause">ストップ</button>

できあがり

28
29
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?