android简易音乐播放器
时间: 2023-08-28 21:08:14 浏览: 164
android-简易音乐播放器(安卓)
4星 · 用户满意度95%
以下是一个简单的 Android 音乐播放器的示例代码。这个示例应用程序使用 Media Player 来播放本地存储的音频文件。
首先,在你的 Android 项目中添加以下权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
```
然后,在你的布局文件中添加以下代码:
```xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp">
<TextView
android:id="@+id/song_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Song Name"
android:textSize="20sp" />
<ImageButton
android:id="@+id/play_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/song_name"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:background="@null"
android:src="@drawable/play_button" />
</RelativeLayout>
</LinearLayout>
```
接下来,在你的 MainActivity.java 文件中添加以下代码:
```java
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private TextView mSongName;
private ImageButton mPlayButton;
private MediaPlayer mMediaPlayer;
private int mCurrentPosition = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化 UI 元素
mListView = findViewById(R.id.listview);
mSongName = findViewById(R.id.song_name);
mPlayButton = findViewById(R.id.play_button);
// 获取本地存储的音频文件列表
final List<String> songs = new ArrayList<>();
String path = Environment.getExternalStorageDirectory().getPath() + "/Music/";
File directory = new File(path);
File[] files = directory.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
if (files[i].getName().endsWith(".mp3")) {
songs.add(files[i].getName());
}
}
}
// 设置音频文件列表
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, songs);
mListView.setAdapter(adapter);
// 设置列表项点击事件
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer = null;
}
// 获取所选音频文件的路径
String songPath = Environment.getExternalStorageDirectory().getPath() + "/Music/" + songs.get(position);
// 初始化 MediaPlayer
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mMediaPlayer.setDataSource(songPath);
mMediaPlayer.prepare();
mMediaPlayer.start();
// 更新 UI 元素
mSongName.setText(songs.get(position));
mPlayButton.setImageResource(R.drawable.pause_button);
} catch (IOException e) {
e.printStackTrace();
}
}
});
// 设置播放按钮点击事件
mPlayButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mMediaPlayer != null) {
if (mMediaPlayer.isPlaying()) {
mMediaPlayer.pause();
mCurrentPosition = mMediaPlayer.getCurrentPosition();
mPlayButton.setImageResource(R.drawable.play_button);
} else {
mMediaPlayer.seekTo(mCurrentPosition);
mMediaPlayer.start();
mPlayButton.setImageResource(R.drawable.pause_button);
}
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
// 释放 MediaPlayer
if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer = null;
}
}
}
```
这个示例应用程序只是一个基本的音乐播放器,没有添加更多高级功能。但是,它为初学者提供了一个好的起点,并展示了如何使用 Media Player 播放本地音频文件。
阅读全文