Android携帯ゲームを作って世界に配信してみよう(3) ―― 効果音の入れ方とデータの保存処理を学ぶ

山田 元康

tag: 組み込み

エレキ系DIY 2011年12月 7日

●効果音を再生するSoundPoolクラスの基本的な使い方

 続いて,SoundPoolクラスを利用してタップやボールのバウンドに効果音をつける方法を説明します.基本的な流れは,次のようになります(ソース・コードはSounds.java内に存在する).

(1) 管理クラスの生成
SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);

(2) 音声ファイルの読み込み
int soundId1 = soundPool.load(context resId1, 1);

(3) 再生
int streamId1 = soundPool.play(soundId1, 1.0F, 1.0F, 0, 0, 1.0F);

(4) 再生停止             soundPool.stop(streamId1);

(5) リソースの破棄          soundPool.unload(soundId1);

(6) 管理クラスの破棄         soundPool.release();

 ここでは,このうち(1)管理クラスの生成と(2)読み込み,(3)再生のAPIについて,APIドキュメントをひも解きながら紹介します.その他のメソッドについては,以下のAPIドキュメントを参照してください.

Sound Pool | Android Developers
http://developer.android.com/reference/android/media/SoundPool.html

 

●SoundPoolクラスのコンストラクタ

 下記が,SoundPoolクラスを生成するコンストラクタです.

public SoundPool (int maxStreams, int streamType, int srcQuality)

 このコンストラクタでは,読み込み音声ファイルを指定しません.読み込む音声ファイルに共通の再生動作について,設定を行います.このメソッドの引き数は,表3の通りです.

 

表3 SoundPoolクラス コンストラクタの引き数と戻り値

第1引き数
maxStreams
生成したSoundPoolクラスのインスタンスの最大同時再生数を指定する
第2引き数
streamType
再生する音声の種類を指定する.ゲームで音声を再生する場合は,AudioManager.STREAM_MUSICを指定する.これ以外には次のような指定ができる.
AudioManager.STREAM_ALARM アラーム用
AudioManager.STREAM_NOTIFICATION 通知用
AudioManager.STREAM_DTMF トーン信号音
AudioManager.STREAM_RING 着信音
AudioManager.STREAM_SYSTEM システム音
第3引き数
srcQuality
再生品質を指定する引き数だが,現在のところ設定しても効果はないようだ.デフォルト値の0を指定する

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日