HTML5のaudio要素をJavaScriptで操作するコードを書いていて、Windows版ChromeとiOS版Safariではまったのでメモ。
こんな感じのコード function play(myid) { var audio = $('#aud_' + myid)[0]; if (!audio) { audio = $('#aud_' + myid)[1]; } if (!audio) { return false; } audio.addEventListener("ended", function() { $('#img_' + myid).attr('src','/wp/misc/standby.png'); }, false); $('#img_' + myid).attr('src','/wp/misc/playing.gif'); audio.play(); return false; }一度再生させたaudio要素を、再びこの関数を使って再生させようとしても、音が鳴らない。 デバッグしてみると、currentTimeが末尾のままになっている様子。 ということで、再生前にcurrentTime = 0;を入れてみても、もう元には戻らない… 無職のプログラミングさんの記事を参考に、audio.load();を入れてみたところ、無事に再再生ができるように。 function play(myid) { var audio = $('#aud_' + myid)[0]; if (!audio) { audio = $('#aud_' + myid)[1]; } if (!audio) { return false; } audio.addEventListener("ended", function() { audio.load(); // 既に再生済みの音声がもう一度クリックされる時のための処理 $('#img_' + myid).attr('src','/wp/misc/standby.png'); }, false); $('#img_' + myid).attr('src','/wp/misc/playing.gif'); audio.play(); return false; } PR
Powered by 忍者ブログ
Design by まめの
Copyright © [ Traveler's memo ] All Rights Reserved. http://shaitkennomemo.sugo-roku.com/ |
∴ プロフィール
HN:
Traveler
性別:
非公開
∴ 最新記事
(09/22)
(09/18)
(09/16)
(09/11)
(09/11)