有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在单击播放按钮1次时逐个播放所有音频文件

我有两个mp3文件。我想在单击“播放”按钮时逐个播放所有mp3文件(这意味着播放第一个音频后,需要播放第二个音频文件)

我试过这个密码。但它不起作用

 package com.example.playaudio;

  import 安卓.app.Activity;
  import 安卓.media.AudioManager;
  import 安卓.media.MediaPlayer;
  import 安卓.net.Uri;
  import 安卓.os.Bundle;
  import 安卓.view.Menu;
  import 安卓.view.View;
  import 安卓.view.View.OnClickListener;
  import 安卓.widget.Button;
  import 安卓.widget.TextView;


 public class MainActivity extends Activity implements OnClickListener{
private MediaPlayer mp;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    Button button1=(Button)findViewById(R.id.button_1);
    button1.setOnClickListener(this);
    
}

public void onClick(View v) {
    int x,y ;
    x=R.raw.a;           //Mp3 file 1
    y=R.raw.b;           //Mp3 file 2          

    if (mp != null) {
        mp.release();
    }
    
    int z=0;
    
     for(int i=0; i<10; i++){            
            mp = MediaPlayer.create(this, x);
            mp.start();
         
        }
    }   

@Override
protected void onDestroy() {
    if(null!=mp){
        mp.release();
    }
    super.onDestroy();
}
}

请告诉我这个问题的解决办法


共 (2) 个答案

  1. # 1 楼答案

    使用Mediaplayer的默认构造函数获取Mediaplayer对象的句柄,然后将所有音频曲目添加到播放队列

    MediaPlayer _myPlayer = new MediaPlayer();
    myPlayer.setDataSource( myContext , myURI);
    myPlayer.start();
    
    
    MediaPlayer _nextPlayer = new MediaPlayer();
    nextPlayer.setDataSource( myContext , myNextURI);
    myPlayer.setNextMediaPlayer(nextPlayer);
    
  2. # 2 楼答案

    尝试使用While循环

        while(x<10){
            //code
         }