播放音乐 上下播放

public class MainActivity extends Activity {

    private MediaPlayer player;
    private MediaPlayer players;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    //第二种方法  添加到sdcard
    //播放
    public void Plays(View v){
        players = new MediaPlayer();
        players.setAudioStreamType(AudioManager.STREAM_MUSIC);//
        try {
            players.setDataSource("/sdcard/people.mp3");
            players.prepare();
            players.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
    //暂停
    public void pause(View v){
        if (players != null && players.isPlaying()) {
            players.pause();
        }else{
            players.start();
        }
    }
    //停止
    public void Stop(View v){
        if (players != null && players.isPlaying()) {
            players.stop();
            players.release();//释放资源
            players=null;
        }
    }
    

}



                     //实现上一首,下一首

                  public class MainActivity extends Activity {

    private MediaPlayer player;
    private List<String> asList;
    private int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        asList = Arrays.asList("/sdcard/ifyou.mp3","/sdcard/people.mp3");
    }

    

    public void Play(int count) {
        
        try {
            player = new MediaPlayer();
            player.setAudioStreamType(AudioManager.STREAM_MUSIC);
            player.setDataSource(asList.get(count));
            player.prepare();
            player.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
    
    

    // 播放
    public void Action(View v) {
         Play(count);
    }

    // 上一首
    public void Last(View v) {
        if (player != null && player.isPlaying()) {
            if (count <= 0) {
                Toast.makeText(MainActivity.this, "这是第一首", 0).show();
            } else {
                count--;
                Stop();
                Play(count);
            }
        }

    }

    // 下一首
    public void Naxt(View v) {
        if (player != null && player.isPlaying()) {
            if (count < (asList.size()-1)) {
                count++;
                Stop();
                Play(count);
            } else {
                Toast.makeText(MainActivity.this, "这是最后一首", 0).show();
            }
        }
    }
    
    public void Stop() {
        if (player != null && player.isPlaying()) {
            player.stop();
            player.release();
            player=null;
        }
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个Android音乐播放的demo,支持本地sd卡路径下.mp3文件播放,上下歌曲切换,暂停、播放功能,手动控制进度条,支持安卓8.1+(需要apk访问sd卡权限)。具体实现可以参考以下步骤: 1.在AndroidManifest.xml文件中添加读写SD卡权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ``` 2.在布局文件中添加音乐播放相关的控件: ```xml <Button android:id="@+id/btn_previous" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上一首" /> <Button android:id="@+id/btn_play_pause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="播放" /> <Button android:id="@+id/btn_next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一首" /> <SeekBar android:id="@+id/seek_bar" android:layout_width="match_parent" android:layout_height="wrap_content" /> ``` 3.在Activity中实现音乐播放相关的逻辑: ```java public class MainActivity extends AppCompatActivity implements View.OnClickListener { private MediaPlayer mediaPlayer; private Button btnPrevious; private Button btnPlayPause; private Button btnNext; private SeekBar seekBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnPrevious = findViewById(R.id.btn_previous); btnPlayPause = findViewById(R.id.btn_play_pause); btnNext = findViewById(R.id.btn_next); seekBar = findViewById(R.id.seek_bar); btnPrevious.setOnClickListener(this); btnPlayPause.setOnClickListener(this); btnNext.setOnClickListener(this); mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { seekBar.setMax(mediaPlayer.getDuration()); mediaPlayer.start(); } }); mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { btnPlayPause.setText("播放"); } }); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_previous: // 上一首 break; case R.id.btn_play_pause: // 播放/暂停 if (mediaPlayer.isPlaying()) { mediaPlayer.pause(); btnPlayPause.setText("播放"); } else { mediaPlayer.start(); btnPlayPause.setText("暂停"); } break; case R.id.btn_next: // 下一首 break; } } @Override protected void onDestroy() { super.onDestroy(); mediaPlayer.release(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值