音乐播放器0.1

在这里插入图片描述
插入图片
在这里插入图片描述
创建两个
在这里插入图片描述
pause_button_selector.xml代码

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/pause_button_pressed" android:state_pressed="true"/>
    <item android:drawable="@mipmap/pause_button" android:state_pressed="false"/>
</selector>

play_button_selector.xml代码

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/play_button_pressed" android:state_pressed="true"/>
    <item android:drawable="@mipmap/play_button" android:state_pressed="false"/>

</selector>

3、准备音频素材
准备一些mp3音乐文件(文件名必须是英文的,因为模拟器不支持中文文件名),拷贝/storage/sdcard/Music目录里。
在这里插入图片描述

主布局资源文件activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:background="@mipmap/background"
    android:orientation="vertical"
    android:padding="10dp"
    tools:context="com.example.musicplayerv01.MainActivity">

    <TextView
        android:id="@+id/tv_music_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textColor="#0000ff"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_play_pause"
            android:layout_width="60dp"
            android:layout_height="50dp"
            android:onClick="doPlayOrPause"
            android:background="@drawable/play_button_selector"/>

    </LinearLayout>

</LinearLayout>

主界面类MainActivity

package com.example.musicplayerv01;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
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 mp;
    private File musicDir;
    private String musicName;
    private TextView tvMusicName;
    private Button btnPlayOrPause;
    private int currentPosition;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvMusicName = (TextView)findViewById(R.id.tv_music_name);
        btnPlayOrPause = (Button)findViewById(R.id.btn_play_pause);
        musicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
        if(musicDir.list()!=null){
            musicName = musicDir.list()[0];
            tvMusicName.setText("音乐名:"+musicName.substring(0,musicName.lastIndexOf('.')));
        }else{
            Toast.makeText(this,"存储卡上Music目录里没有音乐文件!",Toast.LENGTH_LONG).show();
        }
        mp = new MediaPlayer();
        mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                Toast.makeText(MainActivity.this,"音乐播放完毕!",Toast.LENGTH_LONG).show();
                currentPosition = 0;
                btnPlayOrPause.setBackgroundResource(R.drawable.play_button_selector);
            }
        });
    }
    private void play() throws Exception{
        mp.reset();
        mp.setDataSource(musicDir.getAbsolutePath()+"/"+musicName);
        mp.prepare();
        mp.seekTo(currentPosition);
        mp.start();
        btnPlayOrPause.setBackgroundResource(R.drawable.pause_button_selector);
      }
    private void pause() {
        mp.pause();
        currentPosition = mp.getCurrentPosition();
        btnPlayOrPause.setBackgroundResource(R.drawable.play_button_selector);
    }

    public void doPlayOrPause(View view) throws Exception{
        // 判断音乐是否在播放
        if (mp.isPlaying()) {
            // 暂停音乐
            pause();
        } else {
            // 播放音乐
            play();
        }
    }


    protected void onDestroy() {
        super.onDestroy();
        if (mp.isPlaying()) {
            // 停止播放
            mp.stop();
            // 释放媒体播放器
            mp.release();
            // 销毁媒体播放器
            mp = null;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值