カメラのシャッター音やVideoの撮影音は今まではSoundPoolやMediaPlayerにてリソースを設定し流すしかありませんでした。
Android4.1からの新機能のMediaActionSoundを使うとOS標準の音を持ってきて利用することができます。
MediaActionSoundの持つメソッドは以下のようになります。
[table “266” not found /]
音をロードすることができる種類は以下のようになります。
[table “267” not found /]
続きで実装方法を見てみましょう。
標準のカメラの撮影音を出す
今回はボタンを押した時にMediaActionSoundで音を鳴らすようにしたサンプルをご紹介します。
ボタンを押した時にピコンと音がなります。
ただし、実装では2点注意しなければならない点があります。
音楽リソースのロード(loadメソッド)を行なってから再生(playメソッド)を行うようにしてください。そしてアプリを終了するときに必ず開放(releaseメソッド)を忘れないようにしてください。
それではソースコードは以下の通りです。
■MainActivity.java
public class MainActivity extends Activity implements OnClickListener { private MediaActionSound mSound; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSound = new MediaActionSound(); mSound.load(MediaActionSound.SHUTTER_CLICK); Button button = (Button) findViewById(R.id.sound); button.setOnClickListener(this); } @Override protected void onDestroy() { mSound.release(); super.onDestroy(); } public void onClick(View v) { if(v.getId() == R.id.sound){ mSound.play(MediaActionSound.SHUTTER_CLICK); } } }
9行目にてシャッター音をロードするように指定し、ボタンが押された時にコールバックされたところの23行目にてロードした音の再生を行なっています。
そしてアプリを終了するときに17行目にてリソースの開放を行なっています。