一介の開発者の戯言

最近、仕事が一段落したので勉強がてらajaxを使って文字や画像をリアルタイムに変更するホームページを作ってみました。
とりあえず比較的簡単にInternet Explorer・Firefox・chrome・safari・iPod touch safariで動作するようにできました。
効果音も必要なのでネットで色々と調べて
IEの場合はOBJECTタグ
その他のブラウザはEMBEDタグで行うのが好ましそうな記述が多い感じです。
検証してみると、ほぼすべてのブラウザで

<DIV id=”player” style=”display:none”></DIV>
<SCRIPT type=”text/javascript”>
function EmbedPlay(){
  var option = ‘”‘;
  option += ‘ qtsrc= ‘ + sound_url;
  option += ‘ autostart = “true”‘;
  option += ‘ autoplay = “true”‘;
  option += ‘ loop = “false”‘;
  option += ‘ enabledjavascript = “true”‘;
  option += ‘ controller = “true”‘;
  option += ‘ cache=”true”‘ ;
  document.getElementById(‘player’).innerHTML = ‘<embed src=”‘ + sound_url + option + ‘ />’ ;
}
</SCRIPT>

というような記述で動くのですが、どうも音が鳴り出すまでに時間が掛かるのが残念です。
EMBEDにはjavascriptで再生をさせるメソッドは存在しないようです。
IEの場合はOBJECTタグを使えばほとんどタイムラグなしで再生できるようなので

function playSound(){
  try{
    getElementById(‘obj_player’).play();
  }catch(e){
    EmbedPlay();
  }
}

としました。あまりブラウザによって処理を判断するのは好きではないのでtry catchで例外をフックしてobjectタグでエラーが出たらEMBEDで処理するようにしました。
上記のセットでPCのブラウザは大体動くようになったのですがどうしてもiPod touchでは動きません。
色々なiPod touch/iPhone用のサイトを見てみましたが音を鳴らしたいと思えるシーンでも音が鳴るホームページは見つかりません。
どうもiPod touchでは別のタスクを立ち上げずにブラウザ上で音を再生することは出来ないようです。
あと一歩のところなのに残念でだぞiPod touch

コメント

コメントを受け付けておりません。