使用android studio ,kotlin语言开发一个基于MediaPlayer的简单音乐播放器 1. 播放、暂停,停止,退出功能; 2. 使用SeekBar组件显示播放进度条,拖动进度条能够改变播放进度
时间: 2024-02-13 22:02:40 浏览: 165
好的,我会为您提供一份基于MediaPlayer的简单音乐播放器的代码示例。以下是Kotlin代码:
```kotlin
import android.media.MediaPlayer
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.widget.Button
import android.widget.SeekBar
class MainActivity : AppCompatActivity() {
private lateinit var mediaPlayer: MediaPlayer
private lateinit var playButton: Button
private lateinit var pauseButton: Button
private lateinit var stopButton: Button
private lateinit var seekBar: SeekBar
private lateinit var runnable: Runnable
private var handler: Handler = Handler()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mediaPlayer = MediaPlayer.create(this, R.raw.sample_audio)
playButton = findViewById(R.id.play_button)
pauseButton = findViewById(R.id.pause_button)
stopButton = findViewById(R.id.stop_button)
seekBar = findViewById(R.id.seek_bar)
playButton.setOnClickListener {
mediaPlayer.start()
updateSeekBar()
}
pauseButton.setOnClickListener {
mediaPlayer.pause()
}
stopButton.setOnClickListener {
mediaPlayer.stop()
mediaPlayer.prepare()
seekBar.progress = 0
handler.removeCallbacks(runnable)
}
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
if (fromUser) {
mediaPlayer.seekTo(progress)
}
}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
}
private fun updateSeekBar() {
seekBar.progress = mediaPlayer.currentPosition
runnable = Runnable {
updateSeekBar()
}
handler.postDelayed(runnable, 1000)
}
override fun onDestroy() {
super.onDestroy()
mediaPlayer.release()
handler.removeCallbacks(runnable)
}
}
```
在这个示例中,我们使用了MediaPlayer来控制音频的播放,同时使用SeekBar来显示音频播放的进度条。在Activity的onCreate()方法中,我们初始化MediaPlayer和所有的按钮和SeekBar,然后为每个按钮设置相应的监听器。在播放按钮被点击时,我们调用MediaPlayer的start()方法来开始播放音频,并启动一个Runnable来更新SeekBar的进度。在暂停按钮被点击时,我们调用MediaPlayer的pause()方法来暂停音频的播放。在停止按钮被点击时,我们调用MediaPlayer的stop()方法来停止音频的播放,并将SeekBar的进度重置为0。在SeekBar的OnSeekBarChangeListener中,我们处理SeekBar的拖动事件,并将MediaPlayer的播放进度设置为SeekBar的进度。最后,在Activity的onDestroy()方法中,我们释放MediaPlayer并移除所有的Runnable。
阅读全文