コンテンツ プロバイダー データベースに保存されている mp3 オーディオ ファイルのパス名を取得するコードのセクションを次に示します。次に、このパス名を使用して mp3 ファイルをロードし、再生を開始します。問題は、別のパス名を取得して一時停止または再生を押すと、新しいファイルではなく、同じ古いオーディオ ファイルが再生され続けることです。この問題を解決する最善の方法は何ですか?
String pathName; // pathname of audio file stored in SD card
String selection = MediaStore.Images.Media.DATA + "='" + pathName +"'";
String[] projection = { MediaStore.Images.Media.LATITUDE };
cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection, null, null);
if(cursor!=null){
cursor.moveToFirst();
}
musicName = (String) cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.LATITUDE));
Toast.makeText(AudioService.this, "from AUDIOSERVICE CLASS music name: " + musicName, Toast.LENGTH_SHORT).show();
cursor.close();
player.setDataSource(musicName);
player.prepare();
player.start();
}