android 简易音乐播放器的实现

android 简易音乐播放器的实现


主要就是调用了MediaPlayer这个核心方法来实现 


      话不多说,直接上代码:

activity_main.xml  随意定义了两个控件  一个进度条,一个系统自带的图片




    

    








然后是MainActivity.java文件


import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.Toast;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {

    private SeekBar sb_main_bar;
    private MediaPlayer mediaPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sb_main_bar = (SeekBar) findViewById(R.id.sb_main_bar);

    //给进度条设置滑动监听
        sb_main_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                //获取当前进度条的位置
                int currentPosition=seekBar.getProgress();
                //跳转到某个位置进行播放
                mediaPlayer.seekTo(currentPosition);
            }
        });



    }
    public void playOrPause(View view) {
      final ImageButton imageButton= (ImageButton) view;
        //实例化MediaPlayer
        if (mediaPlayer == null) {
            //mediaPlayer = MediaPlayer.create(this, R.raw.s8);
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                String sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();

                mediaPlayer = new MediaPlayer();

                //设置音频流的类型
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

                //设置音源
                try {
                    mediaPlayer.setDataSource(this, Uri.parse(sdPath + "/s9.mp3"));
                    //这是获取Tomcat上面的资源
//                    mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.77:7788/s11.mp3"));
                    //同时也是Tomcat上面的播放
//                    mediaPlayer.prepareAsync();
                    mediaPlayer.prepare();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                //设置准备监听
                mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mp) {
                        mediaPlayer.start();
                        //暂停图标
                   // imageButton.setImageResource(android.R.drawable.ic_media_pause);

                        //获取音乐的播放时间
                        int time = mediaPlayer.getDuration();

                        //设置进度条的最大值 为  音乐的播放时间
                        sb_main_bar.setMax(time);
                        new MyThread().start();
                    }
                });
            }

        } else if (mediaPlayer.isPlaying()) {
            mediaPlayer.pause();
            //播放图标
         //imageButton.setImageResource(android.R.drawable.ic_media_play);
        } else {
            mediaPlayer.start();
            //暂停图标
          //  imageButton.setImageResource(android.R.drawable.ic_media_pause);
        }

    }
        class MyThread extends Thread{
            @Override
            public void run() {
                super.run();
                while(sb_main_bar.getProgress()

然后一个简易版本的音乐播放器就实现了。

这里注意的是,我拿的内存卡的音乐文件   必须得你的路径里面有音乐文件才行  路劲则是 你手机文件管理的/storage/emulated/0  这个文件夹里面

同时 你必须还得去AndroidManifest.xml文件上面去加上权限

 
    

也必须安装到手机上面之后 给手机的这个软件也给上权限才可以。

然后就可以播放了

是不是很简单呢 






你可能感兴趣的:(android 简易音乐播放器的实现)