android studio音乐播放器如何从sd卡读取音乐文件
时间: 2023-09-16 12:13:01 浏览: 273
Android编程获取sdcard音乐文件的方法
要从SD卡读取音乐文件,您需要执行以下步骤:
1. 确保您的应用程序具有适当的权限来读取SD卡。在AndroidManifest.xml文件中添加以下代码:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
```
2. 创建一个Activity或Fragment,以便用户可以选择要播放的音乐文件。您可以使用Intent.createChooser()方法启动一个ACTION_GET_CONTENT Intent,以允许用户选择音乐文件。
```java
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
startActivityForResult(Intent.createChooser(intent, "Select Music"), REQUEST_CODE);
```
3. 一旦用户选择了音乐文件,您可以获取其文件路径,并将其传递给MediaPlayer类以播放音乐。
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
Uri uri = data.getData();
String filePath = getRealPathFromURI(uri);
startPlaying(filePath);
}
}
private String getRealPathFromURI(Uri uri) {
String[] projection = {MediaStore.Audio.Media.DATA};
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
if (cursor == null) {
return uri.getPath();
} else {
int index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(index);
cursor.close();
return path;
}
}
private void startPlaying(String filePath) {
MediaPlayer mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(filePath);
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
```
这些代码片段应该能够帮助您开始从SD卡读取和播放音乐文件。
阅读全文