如何在android中播放音频文件

dIv*_*nGh 47 audio android media-player android-widget

我在我的Android手机中有一个mp3文件,让它在我的SD卡中的某个地方是xyz.mp3.如何通过我的应用程序播放它?

Lal*_*ani 99

您只需使用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();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • "GUI怎么样"大声笑 (100认同)
  • 对于GUI你必须自己动手并从图像和所有布局中获取帮助. (8认同)
  • 你永远不应该使用"/".你应该总是使用`File.separator`. (4认同)
  • 如何获取路径和文件名? (3认同)

A-S*_*ani 11

如果音频位于本地原始资源中:

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

要从系统中本地可用的 URI 播放:

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


小智 8

@Niranjan,如果您使用res/raw文件夹中的原始文件,即读取存储在项目中的文件,我们可以使用:

mediaplayer.setDataSource(context, Uri.parse("android.resource://urpackagename/res/raw/urmp3name");
Run Code Online (Sandbox Code Playgroud)

如果您必须使用SD卡:

 MediaPlayer mediaPlayer = new MediaPlayer();
 File path = android.os.Environment.getExternalStorageDirectory();
 mediaPlayer.setDataSource(path + "urmp3filename");
Run Code Online (Sandbox Code Playgroud)

看到这个相关的问题:android上的原始文件夹和SD卡之间的MediaPlayer问题

  • 可能 -1 是因为您发布了原始问题的答案(即如何播放音频文件);如果您想回复 Niranjan 的评论,您应该自己在 Lalit 的回答下添加评论 (2认同)