杭州做网站公司哪家好,用php做购物网站,企业如何建设网站,东莞百度快速排名提升Kotlin 如何播放音频文件 文章目录Kotlin 如何播放音频文件1 下载并放置音频文件2 activity_main.xml3 MainActivity.kt1 下载并放置音频文件
我们可以随便下载一个音频文件#xff0c;比如 alarm.mp3#xff0c;需要将其放置在 /res/raw/ 路径下。
2 activity_main.xml
这…Kotlin 如何播放音频文件 文章目录Kotlin 如何播放音频文件1 下载并放置音频文件2 activity_main.xml3 MainActivity.kt1 下载并放置音频文件
我们可以随便下载一个音频文件比如 alarm.mp3需要将其放置在 /res/raw/ 路径下。
2 activity_main.xml
这里我们加一个按钮当我们按下这个按钮后APP 播放指定的音乐。
Buttonandroid:idid/pushButtonandroid:layout_width150dpandroid:layout_height150dpandroid:textPressandroid:textColorcolor/whiteapp:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintHorizontal_bias0.498app:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparentapp:layout_constraintVertical_bias0.344 /3 MainActivity.kt
class MainActivity : AppCompatActivity() {private var mediaPlayer: MediaPlayer? nullSuppressLint(ClickableViewAccessibility, ResourceType)override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)mediaPlayer MediaPlayer.create(this, R.raw.alarm1)mediaPlayer?.setOnPreparedListener{println(READY TO GO)}pushButton.setOnTouchListener { _, event -handleTouch(event)true}}// 按下按钮后报警声音响起private fun handleTouch(event: MotionEvent){when (event.action) {MotionEvent.ACTION_DOWN - {println(down)mediaPlayer?.start()}MotionEvent.ACTION_UP - {println(up)mediaPlayer?.pause()mediaPlayer?.seekTo(0)// 使用完MediaPlayer需要回收资源。// MediaPlayer是很消耗系统资源的所以在使用完MediaPlayer不要等待系统自动回收最好是主动回收资源。if (mediaPlayer ! null mediaPlayer?.isPlaying true) {mediaPlayer?.stop()mediaPlayer?.release()mediaPlayer null}}else - {println(others)}}}}
这里的逻辑还是比较直白的有几个点需要解释一下。首先我们需要先创建一个新的 MediaPlayer用于播放自定义的音乐MediaPlayer.create(this, R.raw.alarm1)这里此音乐命名为 alarm1.mp3并存放于 res/raw/ 文件夹下。mediaPlayer?.setOnPreparedListener 在这里没有任何作用这个函数的作用是告诉我们音频何时准备好播放Register a callback to be invoked when the media source is ready for playback.。当我们按下按钮后会触发 handleTouch 函数或者更准确地说是 handleTouch 中的 MotionEvent.ACTION_DOWN。mediaPlayer?.start() 即播放音乐的指令。当我们松开按钮时便会触发 handleTouch 中的 MotionEvent.ACTION_UP。最后需要注意MediaPlayer 是很消耗系统资源的所以在使用完 MediaPlayer不要等待系统自动回收最好是主动回收资源mediaPlayer?.stop()mediaPlayer?.release()。