赞
踩
目录
Android中播放音频采用MediaPlayer类,以下几种是本次所需的控制方法:
方法名 | 功能描述 |
start() | 开启或继续播放音频 |
pause() | 暂停播放音频 |
stop() | 停止播放音频 |
release() | 释放MediaPlayer对象相关资源 |
isPlaying() | 判断当前是否播放 |
main文件(右击)~new~Directory~assets(双击),添加assets文件到main下方。
关于assts:Android用来存储音频文件的地方,且只能存储音频。
自行下载.mp3文件,可通过拖拽方式添加到assts文件夹下方。(也可复制粘贴)
设置xml文件为线性结构,然后创建三个按钮(分别为播放、暂停和停止)
- <Button
- android:layout_width="0dp"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:id="@+id/button1"
- android:text="play"
- />
- <Button
- android:layout_width="0dp"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:id="@+id/button2"
- android:text="pause"
- />
- <Button
- android:layout_width="0dp"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:id="@+id/button3"
- android:text="stop"
- />

- val play:Button=findViewById(R.id.button1)//播放
- val pause:Button=findViewById(R.id.button2)//暂停
- val stop:Button=findViewById(R.id.button3)//停止
private val mediaPlayer=MediaPlayer()//获取对象
需要判断是否播放
- play.setOnClickListener {
- if(!mediaPlayer.isPlaying){//判断当前是否播放
- mediaPlayer.start()//播放
- }
- }
- pause.setOnClickListener {
- if(mediaPlayer.isPlaying){
- mediaPlayer.pause()
- }
- }
- stop.setOnClickListener {
- if(mediaPlayer.isPlaying){
- mediaPlayer.release()//重置
- initMediaPlayer()
- }
- }

initMediaPlayer()
- private fun initMediaPlayer(){
- val assetManager=assets//操作assets目录下的音频文件
- val fd=assetManager.openFd("北京欢迎你.mp3")//打开文件(名称+后缀)
- mediaPlayer.setDataSource(fd.fileDescriptor,fd.startOffset,fd.length)
- //获取文件数据的基本信息,第一个秒数,第二个偏移量,第三个长度
- mediaPlayer.prepare()//调用,进行准备工作。(重置加准备)
- }
- //直接退出(关闭并释放)
- override fun onDestroy() {
- super.onDestroy()
- mediaPlayer.stop()
- mediaPlayer.release()
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".MainActivity">
- <Button
- android:layout_width="0dp"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:id="@+id/button1"
- android:text="play"
- />
- <Button
- android:layout_width="0dp"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:id="@+id/button2"
- android:text="pause"
- />
- <Button
- android:layout_width="0dp"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:id="@+id/button3"
- android:text="stop"
- />
- </LinearLayout>

- 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()
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。