私はmp3ファイルへのフィルタがあるループを持っていますが、ファイルの所要時間を8〜10秒かかってもらいたいときは、Mediaplayer.create、get.Duration、MediaMetadaretrieve、Mediaplayer.setDatasource.get.Durationを試しましたが、 、私はコードMedia.createとmetada.extracMetadaは多くの時間を取った彼らであることを知って、オーディオの所要時間を8〜10秒で取得するには、どうすればいいですか?
File scan;
File[]list;
String song_path;
int posicion;
int minutes;
int seconds;
ArrayList<String>Song_list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView text=(TextView)findViewById(R.id.text);
metada=new MediaMetadataRetriever();
scan= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
list=scan.listFiles();
for(File files:list){
if(files.getName().endsWith("mp3")){
song_path=String.valueOf(files.getAbsolutePath());
Song_list.add(song_path);
metada.setDataSource(MainActivity.this,Uri.parse(song_path));
String dutation=metada.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
posicion=Integer.parseInt(dutation)/1000;
minutes=posicion/60;
seconds=posicion%60;
text.setText(minutes+":"+seconds+text.getText());
/*player=MediaPlayer.create(MainActivity.this,Uri.parse(song_path));
posicion=player.getDuration()/1000;
minutes=posicion/60;
seconds=posicion/60;
text.setText(minutes+":"+seconds+text.getText());*/
}
}
}
}
を、それをクラッシュされますMediaplayer.setDatasource除く10秒ありがとう - 彼らは8を取りましたあなたの注意のために
このすべてを自分で行うのではなく、 'MediaStore'を照会してください。 – CommonsWare
私に例を与えることができます –
http://stackoverflow.com/q/26619688/115145 http://www.jayrambhia.com/blog/android-audio-cursor – CommonsWare