- ベストアンサー
MP3をEMBEDタグで鳴らしたいが・・・
あるCGIゲームで、BGMを流せないかと考えています。 音色のバランスを最優先に考えるためにMP3にしたいのですが MP3の場合ですと、ループ再生がうまくいかないようです。 http://www.daiba.cx/tmp/wav.html (600kぐらいある) http://www.daiba.cx/tmp/mp3.html (63k) 2つを聞き比べてみればわかると思います。 (注:ダウンロードで時間がかかって途切れるというのは なしと考えて下さい。キャッシュにたまったことを確認してから・・・) そうすると、wav.html のほうは、きれいにループをするのにも かかわらず mp3.htmlのほうは、ほんのわずかな間があいてしまいます。 これを対処するには、どうしたらよいのでしょうか? 参考までに、mp3変換は、午後のコーダ UNIX版を使用していますが 他にも、数種類のエンコーダーで試して同様の結果でした。 p.s. 参考までに、CGIゲームですが、MP3はインストーラーをダウンロードした人のみ 利用できるようになる為、一度インストールすれば再生には 時間はかかりません。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
私の環境、Win版 IE5.01で試した報告です。 プラグインをWindows Media Player 6をデフォルトにした場合、おっしゃる通り、MP3だけ間があいてしまいました。 それで、ためしに、Real Player 7をデフォルトにしてみると、ループされず、一度だけ再生されて終わってしまいました。(loop="true"が利かないみたいです。ループをrepeat="true"で紹介しているものもありますが、そっちで鳴るかどうか、詳しくないのでよくわかりません) でも、どうやらプラグインによってかなり変わるようです。 私の友人のサイトでは、Flashを使ってMP3をループ再生していますが、そっちの方が良いかもしれません。作るゲームにもよると思いますけど…、Flashもよくわからないので、適当な回答ですみません。
その他の回答 (5)
さっき思ったんですけど、プラグインなんて環境によって違うんですから、ここはやはり、ループ時に曲がとぎれてもおかしくないように作曲するのが一番だと思います。 サターン版のセガラリーは、曲が終わるとループするときに1秒くらい間がありますけど、あんまり不自然は感じないです。
補足
質問とはおもいっきしはずれてしまいますが(^^; サターン版のセガラリーはやったことないのでわかりませんが・・ FM-TOWNS版のアフターバーナは、CDから直接音楽を鳴らして いるので、かなり気になる部分があります。 #ちなみに、サターンで曲も作ったことあります(^^;
アテになる回答ではないのですが……。 CGIゲームの場合、WAVEよりもやはりMIDIの方がいいと思います。 鳴らせる環境が……って問題はありますけど、サウンドカードの載っている環境なら少なくともオンボードのFM音源でのエミュレーションで鳴らすこともできますから。
補足
うーん。MIDIも考えたのですが、 音質を最高級に追求したいというのがあるので・・・
- bob
- ベストアンサー率50% (52/103)
圧縮音声の再生の間が途切れる原因の可能性は大きく2つ、エンコードの際に頭(またはお尻)に余計なすき間が出来たか、kenkenkentさんご指摘の通りデコードの準備に時間がとられているかです。 mp3へのエンコードで余計な空白が頭に入る事があるという話は過去に聞いたことがありますが、私の環境でスムースに再生できたことから前者の可能性は薄いでしょう。 wavがスムースに行くのは標準とかとはほとんど関係なくて、単に軽いからです。wavは圧縮されていないか、されていてもmp3に比べてデコードがずっと速いので。 圧縮音声の再生にも大きく2通りあり、一つは全体をデコードしてから再生する方法、もう一つはバッファを用意して少しずつデコードしながら再生する方法です。普通はファイルサイズが分からないので後者を使います。この際、音が途切れるのを避けるためにダブルバッファとかいろいろな工夫をします。 ブラウザの場合様々なフォーマットに対応するためにプラグインを介して再生するわけですが、今回のケースではたまたまIEのプラグインがそこら辺にあまり気を配っていなかったということでしょう。まあ、ブラウザの音楽再生なんておまけみたいなもんですから。 そう考えるとmp3再生に使うプラグインを換えるだけでも直るかも? Macでの「トランスレート済み書類」というフォルダは以前QTが完全対応できていないフォーマットのムービーを再生するために、一括変換してから再生という方法をとっていたころ使っていましたが、最近はあまり使ってないのでは?
補足
うーん、実際の所、極端な話ですが 「買ってきたばかりのパソコンで問題がない」 という条件になるでしょう。 #いいかえてしまえば、入れたてのWindows・・に、とも いいますが・・ あと、Macはあるにはあるのですが、まだ確認してません(-_-)
- kenkenkent
- ベストアンサー率30% (565/1854)
アテにならない回答でごめんなさい。 wavって言うのはWinの標準のサウンドフォーマットですよねぇ?(違ったっけ?) だから、再生がスムースなので、ループもきれいに行くのでは? MP3って言うのは、圧縮されたサウンドデータですよねぇ? それを、解凍してから再生する訳ですよね。 その際に一瞬タイムラグができているとは考えられませんか? bobさんのMac(私もMacなのですが)は、QuickTimeが MP3をサポートしているから再生が早いとか(あるいは、 QTがMP3を自分のフォーマットに変換してキープしてあるか)。 Macのシステムフォルダーの中の初期設定フォルダーの中に 『トランスレート済み書類』って言うQTのフォルダがあるんで、 なんかそれが気になる・・・。
- bob
- ベストアンサー率50% (52/103)
私のMac上で試したところではどちらもスムースに聞こえてしまいました。 CGIゲームというのはたぶんWebブラウザ上から実行するゲームなんですよね? そういう場合音楽再生もブラウザ依存なので、様々な実行環境が世にあることを考えると、なるべく無難なフォーマットを使ったほうがいいでしょう。 個人的な見解ですが、mp3はゲームのBGMには向かないと思います。理由は単純に重いからです。最近のマシンではそれほど気にならないと思いますが、ちょっと古いマシンを使うと露骨に重くなります。 再生を自前でやっているなら対処方法もある程度ありますが、ブラウザ依存ではどうしようもないかも。 ファイルサイズは大きくなるけどwavで配付するか、面倒だけどmp3で配付して実効前に各自でwavに展開してもらうかのどちらかかな? BGMが長ければ頭やお尻にフェードイン/アウトをいれてごまかすとか... あ、QuickTimeムービーにしてループさせればタイムコントロールされるかな?(確証無し) 以上、外してたら軽くお聞き流し下さい。
補足
私の所の場合は、IE5(Win)専用なのですが、同じCGIゲームの 古いバージョンですと、IE5、IE4、NN4(Win、Mac)に なってしまい、ブラウザ依存もあるかと思います。 また、すべての人が音楽を鳴らせるという前提ではないので そのあたりは問題は少ないかと思います。
お礼
手元にあった古いFlashで試したら、どうやら うまくいきそうな感じです。 ですが、圧縮率があまりよくないのが残念です。 考えたら、クリック等のイベントにも容易に対応できるように そっちで作ったほうが早いのかもしれませんね。
補足
新しい(?)Flash4の体験版でも確認しました。 MP3のエンコーディングが他よりも何かと劣ってるような 感じがしますが (他のエンコーダーの同じレートよりも音が悪い) 最低限の音質は確保でき、かつ、かなり小さなサイズに できるみたいでした。 #補足とお礼が逆になってしまいました。 とりあえず、今は仕様作り?の段階で、曲作りはこれからです。 ありがとうございました。