Android开发学习:[16]MediaPlayer播放音乐

2025-10-22 13:48:12

1、首先打开我们下载安装好的Android Studio

Android开发学习:[16]MediaPlayer播放音乐

2、然后我们写入布局代码,三个按钮用来播放,停止,暂停

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <TextView android:text="音频播放器" android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:id="@+id/textView" />

    <LinearLayout

        android:orientation="horizontal"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:layout_below="@+id/textView"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true">

        <Button

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="播放"

            android:id="@+id/button"

            android:layout_weight="0.33" />

        <Button

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="停止"

            android:id="@+id/button2"

            android:layout_weight="0.33" />

        <Button

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="暂停"

            android:id="@+id/button3"

            android:layout_weight="0.33" />

    </LinearLayout>

</RelativeLayout>

Android开发学习:[16]MediaPlayer播放音乐

3、然后在res目录下面添加raw文件夹下面添加my.mp3文件

Android开发学习:[16]MediaPlayer播放音乐

4、然后我们在添加后台如下代码后台代码

package com.basillee.asus.demo;

import android.app.Activity;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.os.Environment;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

import java.io.File;

public class MainActivity extends Activity {

    private MediaPlayer mediaPlayer;//MediaPlayer对象

    private boolean isPause=false;//是否暂停

    private File file;//要播放的文件

    private TextView hint;//声明提示信息的文本框

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //获取各功能按钮

        final Button button=(Button)findViewById(R.id.button);//播放

        final Button button1=(Button)findViewById(R.id.button2);//暂停

        final Button button2=(Button)findViewById(R.id.button3);//停止

        hint=(TextView)findViewById(R.id.textView);

        if(!isFileExist()){

            button.setEnabled(false);

        }

        //对MediaPlayer对象添加事件监听,当播放完成时重新开始音乐播放

        mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

            @Override

            public void onCompletion(MediaPlayer mp) {

                play();

            }

        });

        //对播放按钮进行事件监听

        button.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                play();

                if(isPause){

                    button1.setText("暂停");

                    isPause=false;

                }

                button1.setEnabled(true);

                button2.setEnabled(true);

                button.setEnabled(false);

            }

        });

        //对暂停、继续按钮添加事件监听器

        button1.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                if(mediaPlayer.isPlaying()&&!isPause){

                    mediaPlayer.pause();

                    isPause=true;

                    ((Button)v).setText("继续");

                    hint.setText("暂停播放音频....");

                    button.setEnabled(true);

                }else{

                    mediaPlayer.start();

                    ((Button)v).setText("暂停");

                    hint.setText("继续播放音频....");

                    button.setEnabled(false);

                }

            }

        });

        //对停止按钮添加事件监听器

        button2.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                mediaPlayer.stop();

                hint.setText("停止播放音频...");

                button1.setEnabled(false);

                button2.setEnabled(false);

                button.setEnabled(true);

            }

        });

    }

    @Override

    protected void onDestroy() {

        if(mediaPlayer.isPlaying()){

            mediaPlayer.stop();

        }

        mediaPlayer.release();

        super.onDestroy();

    }

    //判断文件是否存在

    private boolean  isFileExist(){

        file=new File(Environment.getExternalStorageDirectory()+File.separator+"myMP32.mp3");

        if(file.exists()){

          //  mediaPlayer=new MediaPlayer();

            mediaPlayer=MediaPlayer.create(this,R.raw.my);

            try {

//                mediaPlayer.setDataSource(file.getAbsolutePath());

//                mediaPlayer.prepare();//预加载音频

//                mediaPlayer.start();//播放音乐

            }catch (Exception e) {

                e.printStackTrace();

            }

            Toast.makeText(this,"file exist",Toast.LENGTH_LONG).show();

            return true;

        }else{

            Toast.makeText(this,"file don't exist",Toast.LENGTH_LONG).show();

        }

        return false;

    }

    //播放音乐的方法

    private void play(){

        try{

            mediaPlayer.reset();//从新设置要播放的音乐

 //           mediaPlayer.setDataSource(file.getAbsolutePath());

//            mediaPlayer.prepare();//预加载音频

            mediaPlayer=MediaPlayer.create(this,R.raw.my);

            mediaPlayer.start();//播放音乐

            hint.setText("Music is starting");

        } catch (Exception e) {

            e.printStackTrace();

            Log.e("err",e.getMessage());

        }

        return ;

    }

}

主要是play方法

Android开发学习:[16]MediaPlayer播放音乐

5、然后我们运行虚拟机如下图所示:

Android开发学习:[16]MediaPlayer播放音乐

6、然后我们运行此程序点击播放按钮就可以播放音乐了,其他按钮功能大家可以自己试试。

Android开发学习:[16]MediaPlayer播放音乐

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢