音楽ファイルを検索する


今回はAndroid端末上に保存されている音楽ファイルを検索する方法をご紹介します。

音楽ファイルを検索するにはMediaStoreクラスで定義されている
INTENT_ACTION_MEDIA_SEARCHというアクションインテントを使用します。

INTENT_ACTION_MEDIA_SEARCHを指定したインテントを発行することで
Android端末上の音楽ファイルを検索し、その検索結果をメディアプレイヤーに渡すことができます。

サンプルとしてMP3のタイトル情報とアーティスト情報を検索キーに
音楽ファイルを検索するサンプルアプリケーションを作成します。

コードは以下のようになります。

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
search_button = (Button) findViewById(R.id.search_button);
title_edittext = (EditText) findViewById(R.id.title_edittext);
artist_edittext = (EditText) findViewById(R.id.artist_edittext);

search_button.setOnClickListener(new OnClickListener() {
	public void onClick(View v) {
		String title = title_edittext.getText().toString();
		String artist = artist_edittext.getText().toString();

		Intent i = new Intent(); // インテントを作成
		i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		i.setAction(MediaStore.INTENT_ACTION_MEDIA_SEARCH); // INTENT_ACTION_MEDIA_SEARCHアクションインテントを発行する
		i.putExtra(SearchManager.QUERY, title+" "+artist); // 検索キーを指定
		i.putExtra(MediaStore.EXTRA_MEDIA_TITLE, title); // タイトルを指定
		i.putExtra(MediaStore.EXTRA_MEDIA_ARTIST, artist); // アーティストを指定
		startActivity(i);
	}
});

インテントとともにSearchManager.QUERYで検索キーとして指定します。
また、併せてEXTRA_MEDIA_TITLEやEXTRA_MEDIA_ARTISTも組み合わせて検索キーとして指定します。

検索結果はメディアプレイヤーに渡され、曲目を選択すれば勿論再生することが可能です。