это намерение, которое открывает Chooser из музыкального приложенияAndroid - Как создать MediaPlayer от выбранного пользователя песни
public void launchMusicPlayer(View view) {
Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i,1);
}
и ниже код onActivityResult, чтобы попытаться получить песню , но проблема в том, что кнопка тестирования при нажатии, не воспроизводит ничего и, поскольку я новичок в кодировании, я не знаю, что я делаю неправильно.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == 1) {
final MediaPlayer testSong = new MediaPlayer();
Uri songUri = data.getData();
try {
testSong.setDataSource(this, songUri);
} catch (IOException e) {
e.printStackTrace();
}
testSong.prepareAsync();
test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
testSong.start();
}
});
}
}
Спасибо. Я пробовал ваш метод, но все тот же вопрос. Поэтому я сделал onClickListener для кнопки в onCreate активности, чтобы воспроизвести определенную песню из необработанной папки, и это работает. Но если я выберу песню из избранного, то нажмите кнопку тестирования, она все еще воспроизводит песню из исходной папки, означая, что она даже не читает onActivityResult, так что мне делать? @Tony Vu –
О, это будет другая проблема с вашего оригинального сообщения. Во всяком случае, я думаю, проблема в том, что Uri возвращен data.getData(). Может потребоваться некоторая обработка, прежде чем перейти к setDataSource(). Вы можете попробовать методы, рекомендованные в этом потоке. Http://stackoverflow.com/questions/17042308/select-a-music-file-to-play-with-mediaplayer –
Спасибо @ Тони Ву. Я получил его для работы с последний ответ в этом вопросе –