MediaMetadataRetriever setdatasource メソッドに問題があります。私は簡単なプロジェクトを作成しました。main.xml には textview しかなく、music.mp3 のパラメーターを表示する必要があります。mp3 はプロジェクトの raw ファイルにあります。mainActivity は次のようになります。
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tvMain = (TextView)findViewById(R.id.textView_songParam);
// load data file
MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
metaRetriever.setDataSource(R.raw.music);
String out = "";
// get mp3 info
out += metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
out += "\n";
out += metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
out += "\n";
//out += metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
//out += "\n";
//out += metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR);
//out += "\n";
// convert duration to minute:seconds
String duration = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long dur = Integer.parseInt(duration);
String seconds = String.valueOf(dur % 60);
String minutes = String.valueOf(dur / 60000);
out += "Length: [ " + minutes + "m" + seconds + "s ]\n";
// close object
metaRetriever.release();
// display output
tvMain.setText(out);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
ここで、データソースを設定する行で何が間違っていますか?? 私はそれを理解していませんか?