Kotlin课程学习一一音频播放(开始、暂停、停止)

目录

一、基础知识

二、项目搭建

(一)音频准备工作

1.文件夹准备

 2.音频准备

(二)布局设置

(三)项目建立

1.创建连接

2.定义全局变量mediaPlayer

3.建立三个按钮的监听

4.初始化播放器

5.建立播放器initMediaPlayer()

6.直接退出播放

(四)完整代码

activity.xml文件

activity.kt文件


一、基础知识

Android中播放音频采用MediaPlayer类,以下几种是本次所需的控制方法:

方法名 功能描述

start()

开启或继续播放音频
pause() 暂停播放音频
stop() 停止播放音频
release() 释放MediaPlayer对象相关资源
isPlaying() 判断当前是否播放

二、项目搭建

(一)音频准备工作

1.文件夹准备

main文件(右击)~new~Directory~assets(双击),添加assets文件到main下方。
关于assts:Android用来存储音频文件的地方,且只能存储音频。
Kotlin课程学习一一音频播放(开始、暂停、停止)_第1张图片

 2.音频准备

自行下载.mp3文件,可通过拖拽方式添加到assts文件夹下方。(也可复制粘贴)

(二)布局设置

设置xml文件为线性结构,然后创建三个按钮(分别为播放、暂停和停止)

(三)项目建立

1.创建连接

val play:Button=findViewById(R.id.button1)//播放
val pause:Button=findViewById(R.id.button2)//暂停
val stop:Button=findViewById(R.id.button3)//停止

2.定义全局变量mediaPlayer

private val mediaPlayer=MediaPlayer()//获取对象

3.建立三个按钮的监听

需要判断是否播放

        play.setOnClickListener {
            if(!mediaPlayer.isPlaying){//判断当前是否播放
                mediaPlayer.start()//播放
            }
        }
        pause.setOnClickListener {
            if(mediaPlayer.isPlaying){
                mediaPlayer.pause()
            }
        }
        stop.setOnClickListener {
            if(mediaPlayer.isPlaying){
                mediaPlayer.release()//重置
                initMediaPlayer()
            }
        }

4.初始化播放器

initMediaPlayer()

5.建立播放器initMediaPlayer()

private fun initMediaPlayer(){
        val assetManager=assets//操作assets目录下的音频文件
        val fd=assetManager.openFd("北京欢迎你.mp3")//打开文件(名称+后缀)
        mediaPlayer.setDataSource(fd.fileDescriptor,fd.startOffset,fd.length)
            //获取文件数据的基本信息,第一个秒数,第二个偏移量,第三个长度
        mediaPlayer.prepare()//调用,进行准备工作。(重置加准备)
    }

6.直接退出播放

//直接退出(关闭并释放)
    override fun onDestroy() {
        super.onDestroy()
        mediaPlayer.stop()
        mediaPlayer.release()
    }

(四)完整代码

activity.xml文件



    

activity.kt文件

package com.example.a134

import android.media.MediaPlayer
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button

class MainActivity : AppCompatActivity() {
    private val mediaPlayer=MediaPlayer()//获取对象
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        initMediaPlayer()//初始化播放器
        val play:Button=findViewById(R.id.button1)//播放
        val pause:Button=findViewById(R.id.button2)//暂停
        val stop:Button=findViewById(R.id.button3)//停止
        play.setOnClickListener {
            if(!mediaPlayer.isPlaying){//判断当前是否播放
                mediaPlayer.start()//播放
            }
        }
        pause.setOnClickListener {
            if(mediaPlayer.isPlaying){
                mediaPlayer.pause()
            }
        }
        stop.setOnClickListener {
            if(mediaPlayer.isPlaying){
                mediaPlayer.release()//重置
                initMediaPlayer()//释放
            }
        }
    }
    private fun initMediaPlayer(){
        val assetManager=assets//操作assets目录下的音频文件(只存放MP3文件)
        val fd=assetManager.openFd("北京欢迎你.mp3")//打开文件(全名包括后缀)
        mediaPlayer.setDataSource(fd.fileDescriptor,fd.startOffset,fd.length)
            //获取文件数据的基本信息,第一个秒数,第二个偏移量,第三个长度
        mediaPlayer.prepare()//调用,进行准备工作。(重置加准备)
    }
    //直接退出(关闭并释放)
    override fun onDestroy() {
        super.onDestroy()
        mediaPlayer.stop()
        mediaPlayer.release()
    }
}

你可能感兴趣的:(android,kotlin,学习)