SoundPool でサウンド再生 ~ローカル版

 SoundPool で、ローカルのサウンド・ファイルを再生してみたよ。
 やってることは、ほとんどリソース版とかわらない。(Android1.6 ベース)

public class mySound extends Activity {

	private SoundPool sp;
	int seID = -1;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);


		String path = Environment.getExternalStorageDirectory().getPath()+"/"
					 +"voice.ogg";

		//リソースファイルからSE
		sp = new SoundPool( 5, AudioManager.STREAM_MUSIC, 0 );
		seID[ch] = sp.load( path, 1 );

		//	Button01
		Button but_PlaySE = (Button) this.findViewById( R.id.Button01 );
		but_PlaySE.setText( "PlaySE 0" );
		but_PlaySE.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				sp.play( seID, 1.0F, 1.0F, 0, 0, 1.0F);
			}
		});
		//---------------

	}

	@Override
	public void onDestroy(){

		sp.stop( seID );
		sp.unload( seID );
		sp.release();
		
		super.onDestroy();
		// アクティビティの終了
		finish();
	}
}

 load method の指定を、ローカルのPath指定にするだけ。
 ファイルがなかったでload できなくても、アプリが異常終了することはない…みたい。
 ログにワーニングが出るけど。(^_^;

Comments are closed.