第11回 サウンドを使ってみる

今回は,iアプリで利用できるサウンドについて取り上げる。

【国内記事】 2001年4月6日 更新

 途中,NTTの公式ツールがリリースされたりして話題を一時,中断してしまったが,ゲームを作るというテーマで今回はサウンドを取り上げたい。読者からも数通ほどサウンドを扱ってほしいというメールをいただいていることから,iアプリのサウンド関係に興味を持っている人が多いようだ。

iアプリでサウンドを使う

 以前にグラフィックの取り扱いを説明したが(第6回参照),iアプリでは,グラフィックとほとんど同じ手続きでサウンドを取り扱えるMediaSoundとAudioPresenterというクラスが用意されている。これを使えば,簡単にサウンドを鳴らすiアプリを作ることができる。

 手順はまず,グラフィックのときと同様にMediaManagerを使ってサウンドデータを取り出さなければならない。次のようにする。

MediaSound ms
 = MediaManager.getSound(
    "resource:///サウンド名" );

 上記のサウンド名のところはサウンドデータのファイル名を指定する。これはグラフィックのときと同様だ。

 次に,このサウンドデータの使用を宣言する。ここまではグラフィックと同じなので,グラフィックの取り扱い(第6回参照)の説明も参照してほしい。

try {
  ms.use();
}
catch( ConnectionException e ) {
  // エラー
}
catch( UIException e ) {
  // エラー
}

 以降がサウンドデータ独特の手続きになる。まず,サウンドを再生するAudioPresenterを作成する。

AudioPresenter ap =
  AudioPresenter.getAudioPresenter();

 ここで作るapとは,サウンドを再生するデバイスのようなものだ。このapに対して,先に取得したMediaSoundをセットする。

ap.setSound( ms );

 あとは次のようにして再生するだけだ。

ap.play();

 AudioPresenterは,サウンドの再生開始,中断,終了をMediaListenerに送信する機能を持っている。使い方は後半の実際に動くコードの中で説明しているので,そちらを参照してほしい。

何のデータが使えるの!?

 という具合に,サウンドの再生はごく簡単だ。問題は上記で「データ名」としたデータに何が使えるかだろう。

 iアプリのドキュメントにも記載されているように,使用できるデータは「iメロディ形式」に限定されている。着メロにも使われているデータなのでよく知っているという読者も多いと思うが,iメロディ形式は一種のMIDIデータ(楽譜のデータ)で,携帯にプリセットされている音色を使って演奏するためのデータだ。

 iメロディ形式のデータを作成するツールはフリーやシェアウェアを含めて数多く発表されている。オンラインソフトのサイト(Vectorなど)で着メロツールを探せば,いくらでも見つけることができるはずだ。

 ……と,ここまで読んで「PCM音は使えないの!?」と思った読者も多いだろう。ゲームには効果音が付きもの。効果音のために是が非でもPCMサウンドが使いたい。

 “PCMサウンドが使えない”と書いているiアプリの参考書もあるが,実は使える。ただし,サウンドデータに何が使えるかは「機種依存」なのだ。503iのミニマムな仕様としてはPCMが使える必要はなく,メーカーの独自機能として使えるようにしている,というのが実情だ。

 そのため,自作iアプリでPCMデータを使う場合,動作対象機種を制限することになる。機種を制限したくないのなら,PCMデータは使わないほうがいい。

 今のところ,「N503i」では8または4ビット,4または8KHzのレートのADPCMデータが再生できることが分かっている。筆者が作成したデータは,「SO503i」「F503i」ではうまく鳴らすことができなかった。多分に機種に依存するようだ。

 さらに,もう1つ問題がある。PCMサウンドや16色和音など,503iをフルサポートできるiメロディ作成ツールが,まだほとんどないという点だ。必死に探し回ったところ,「MLD Creator 16 Ver.1.3」というシェアウェアがサポートしていることが判明した。

 このツールはNAKA氏のページ(注:回線が細いようなので,ソフト本体はVectorなどからダウンロードしたほうがいいだろう)で配布されている。このツールを使ったiメロディデータの作り方は,付属ドキュメントを参照していただきたい。

 このツールを使いN503i用にPCMサウンドを含むiメロディデータを作成し,サンプルアプリを作ってみた。リストはここにあるのでダウンロードしてほしい。また,503iを所有している人は,ここでダウンロードできる。ただし,N503i以外の機種で正常に再生できるかどうか保証の限りではない。試してみていただきたい。

ADPCMデータの作り方

 ADPCMのデータはWindows標準のサウンドレコーダーなどのツールでも作成できる。サウンドを保存する際に,データフォーマットとして「IMA ADPCM」を指定すればいい。

Windows標準のツールでも保存するときにADPCM形式が指定できる

 以上のように,KToolBarを利用すれば一切コマンドを叩くことなくiアプリの開発ができるわけだ。ぜひ利用していただきたい。

 ただ,Windowsの標準コーデックでは,サンプリングレートに最低でも8KHz,4ビット,モノラルのクォリティまでしかサポートできない。サウンドデータはサイズが大きいため,iモードJavaのサイズ制限を簡単に超えてしまう怖れがあるので,本当はサンプリングレートを4KHzまで落としたいところだ。

 残念ながら今のところ筆者は,4KHzのレートをサポートできるいいツールを見つけていない。ご存じの読者がいたらメールで送ってほしい。

関連記事
▼503iのベンチマーク結果をどう読むか?
▼iアプリの互換性は大丈夫なのか?
▼携帯電話はPCと逆方向に進化する?
▼ドコモ,Java搭載iモード端末503i発表──1月26日発売
▼iモード対応Javaを作るのに必要なものは?──NTTドコモ,仕様をついに公開
▼制限きついiモード用Java──ドコモ503iでできること,できないこと
▼Java搭載iモードではこんなことができる!──ドワンゴ「サムライ ロマネスク」
▼iモードのJava端末,当初はロースペックで登場

[米田 聡,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.



モバイルショップ

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!