mieki256's diary



2013/09/02(月) [n年前の日記]

#2 [haxe] Flash上におけるmp3のループ再生

Haxe3 + OpenFL で Flash を出力した際、mp3をループ再生したらちゃんとループして聞こえたので首を捻ったり。数年前に試した際には、曲の始まりだか終わりだかでプチプチ切れてたような記憶があるのだけど…。

mp3 には、ギャップと呼ばれる無音部分がえてして入ってしまう。元々、映像とくっつけて使うことを前提にして作られた音声フォーマットなので、曲の長さがフレーム単位?なのだそうで。波形の長さがその単位と一致しない場合は無音が入る。だから、曲と曲が繋がって聴こえるCDアルバムをmp3に変換して連続再生したり、ループ再生したりすると、無音の部分も入ってしまって、プチプチ切れた感じで聴こえたりする。

Flash は基本的に mp3 しか再生できないけれど。 *1 Adobe Flash CS* で書き出した場合は、そのあたりを上手い具合に処理してくれる。wavを素材データとしてツッコむと、mp3に変換する際、ちゃんと繋がって聴こえるように謎調整してくれるようで。内部で何をやっているのか ―― ギャップ情報を別途持たせて無音部分をスキップして再生しているのか、あるいは波形の一部を生成・削除してるのか、そこまでは分かりませんけど。

しかし、フリーでFlashを作れる関連ソフト・ツールは、そこまでやってくれない。…数年前までは、そのはずで。仕方ないから、当時はサウンド部分だけ Flash CS* で書き出した記憶があり。

でも、今回、Haxe3 + OpenFL でやってみたら、ちゃんと繋がって聴こえたので、これはどうしたことだろうと。…以下の可能性があり得るかな、と。
  1. Flash Player が改善されて、ギャップ情報を持ってる mp3 に対しては、イイ感じに処理をしてくれるようになった?
  2. mp3変換に使ってる LAME のバージョンが上がって、Flash Player が利用可能なギャップ情報も mp3 に埋め込んでくれるようになった?
  3. Haxe から出力された Flash は、そのあたりをイイ感じに処理してくれる?
  4. たまたま偶然、フレーム単位で一致するmp3ができちゃった?
  5. 自分の耳が腐っていて、ノイズを聞き取れてないだけ?
何にせよ、ちゃんとループ再生ができてるようで、ありがたいなと。…自分の耳が腐ってなければ、ですけど。

ちなみに、html5 で出力すると ―― ブラウザ上で ogg をループ再生すると、ループ部分でガッチリ無音が入りました。Firefox が一番酷い。Google Chrome と Opera は、無音部分がちょっと短い感じ。まあ、どのブラウザでもしっかり無音が入るので、どのみち綺麗にループしてるようには全然聞こえませんけど。HTML5陣営は、このあたり、いつになったら修正するのだろう…。まあ、各ブラウザの対応フォーマットが、未だに mp3 と ogg に分かれてる時点で、音に関しては Flash を使い続けるしかないのかな、とも思うのですけど。PC用はそれでもいいけど、スマホはどうなるんだろう…。
*1: 自力で頑張ればPCM相当も扱えるらしいけど…。

以上です。

過去ログ表示

Prev - 2013/09 - Next
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

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project