Как воспроизвести аудио файл в Android - PullRequest
47 голосов
/ 03 сентября 2011

У меня есть mp3-файл на моем андроид мобиле, пусть это xyz.mp3 где-то в моей SDCard. Как играть через мое приложение?

Ответы [ 4 ]

95 голосов
/ 03 сентября 2011

Просто вы можете использовать MediaPlayer и воспроизводить аудиофайл.Проверьте этот хороший пример для воспроизведения аудио:

 public void audioPlayer(String path, String fileName){
    //set up MediaPlayer    
    MediaPlayer mp = new MediaPlayer();

    try {
        mp.setDataSource(path + File.separator + fileName);
        mp.prepare();
        mp.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
8 голосов
/ 16 февраля 2015

@ Niranjan, Если вы используете сырой файл из папки res / raw, т. Е. Читаете файл, хранящийся в проекте, мы можем использовать:

mediaplayer.setDataSource(context, Uri.parse("android.resource://urpackagename/res/raw/urmp3name");

Если вам нужно использовать с SD-карты:

 MediaPlayer mediaPlayer = new MediaPlayer();
 File path = android.os.Environment.getExternalStorageDirectory();
 mediaPlayer.setDataSource(path + "urmp3filename");

См. Этот связанный вопрос: Проблема MediaPlayer между необработанной папкой и SDCard на Android

2 голосов
/ 20 июля 2017
    public class MainActivity extends Activity implements OnClickListener {
    Button play;
    MediaPlayer mp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        play=(Button)findViewById(R.id.button1);
        play.setOnClickListener(this);

    }
    @Override
    public void onClick(View arg0)
    {
        mp=MediaPlayer.create(getApplicationContext(),R.raw.song);// the song is a filename which i have pasted inside a folder **raw** created under the **res** folder.//
        mp.start();


    }

    @Override
    protected void onDestroy() {
        mp.release();
        super.onDestroy();
    }

}
0 голосов
/ 23 февраля 2019

Если аудио находится в локальном необработанном ресурсе:

MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1);
mediaPlayer.start(); // no need to call prepare(); create() does that for you

Для воспроизведения с URI, доступного локально в системе:

Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();
...