安卓实现简单音乐播放器
时间: 2023-08-20 14:37:50 浏览: 63
实现一个简单的安卓音乐播放器,可以按照以下步骤进行:
1. 首先,在Android Studio中创建一个新的项目。
2. 在项目中创建一个包,用于存放所有的Java代码。
3. 创建一个名为“MainActivity”的活动,并将其设置为应用程序的主要活动。
4. 在布局文件中添加一个ListView,用于显示音乐列表。
5. 在Java类中实现一个自定义Adapter,用于将音乐列表显示在ListView中。
6. 创建一个名为“MusicPlayer”的服务,并实现音乐播放的逻辑。
7. 在MainActivity中添加一个按钮,用于启动和停止音乐播放。
8. 在按钮单击事件中启动或停止MusicPlayer服务。
下面是一个简单的示例代码,可以供参考:
MainActivity.java:
```java
public class MainActivity extends AppCompatActivity {
private ListView listView;
private Button playButton;
private MusicPlayer musicPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
playButton = findViewById(R.id.playButton);
// 创建音乐列表
List<Music> musicList = new ArrayList<>();
musicList.add(new Music("music1", R.raw.music1));
musicList.add(new Music("music2", R.raw.music2));
// 将音乐列表显示在ListView中
MusicAdapter adapter = new MusicAdapter(this, R.layout.music_item, musicList);
listView.setAdapter(adapter);
// 创建MusicPlayer服务
musicPlayer = new MusicPlayer();
// 设置播放按钮的单击事件
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (musicPlayer.isPlaying()) {
musicPlayer.stop();
playButton.setText("播放");
} else {
int position = listView.getCheckedItemPosition();
if (position >= 0) {
Music music = musicList.get(position);
musicPlayer.play(music);
playButton.setText("停止");
}
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
musicPlayer.release();
}
}
```
MusicPlayer.java:
```java
public class MusicPlayer extends Service {
private MediaPlayer mediaPlayer;
private boolean isPlaying;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
isPlaying = false;
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
mediaPlayer.release();
}
public void play(Music music) {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(getApplicationContext(), Uri.parse("android.resource://" + getPackageName() + "/" + music.getResId()));
mediaPlayer.prepare();
mediaPlayer.start();
isPlaying = true;
} catch (IOException e) {
e.printStackTrace();
}
}
public void stop() {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
isPlaying = false;
}
}
public boolean isPlaying() {
return isPlaying;
}
}
```
Music.java:
```java
public class Music {
private String name;
private int resId;
public Music(String name, int resId) {
this.name = name;
this.resId = resId;
}
public String getName() {
return name;
}
public int getResId() {
return resId;
}
}
```
MusicAdapter.java:
```java
public class MusicAdapter extends ArrayAdapter<Music> {
private int resourceId;
public MusicAdapter(Context context, int resource, List<Music> objects) {
super(context, resource, objects);
resourceId = resource;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
Music music = getItem(position);
View view;
ViewHolder viewHolder;
if (convertView == null) {
view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);
viewHolder = new ViewHolder();
viewHolder.musicName = view.findViewById(R.id.musicName);
view.setTag(viewHolder);
} else {
view = convertView;
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.musicName.setText(music.getName());
return view;
}
private class ViewHolder {
TextView musicName;
}
}
```
activity_main.xml:
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/playButton"/>
<Button
android:id="@+id/playButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="播放"/>
</RelativeLayout>
```
music_item.xml:
```xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/musicName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"/>
```
在这个示例中,我们使用了一个ListView来显示音乐列表,并使用了一个自定义的Adapter来将音乐列表显示在ListView中。我们还创建了一个MusicPlayer服务,用于实现音乐播放的逻辑。在MainActivity中,我们使用一个按钮来启动和停止音乐播放。当用户单击按钮时,我们将检查当前ListView中是否选择了音乐,如果选择了音乐,则播放音乐,否则停止播放。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)