Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 音乐播放器应用程序中的歌曲一起播放_Java_Android_Android Mediaplayer - Fatal编程技术网

Java 音乐播放器应用程序中的歌曲一起播放

Java 音乐播放器应用程序中的歌曲一起播放,java,android,android-mediaplayer,Java,Android,Android Mediaplayer,我想在我开始另一首歌时停止上一首歌,但目前,它将它们一起播放 我已经尝试了mediaPlayer.stop()和mediaPlayer.release(),但是没有成功 我应该在Parcalar类中执行此操作吗?你可以在底部找到我的两个班级的代码 另外,Seekbar也有一个问题——当我播放音乐时,Seekbar将到达最终位置。但首先我想解决我的第一个问题 package com.example.myapplication; import android.media.MediaPlayer;

我想在我开始另一首歌时停止上一首歌,但目前,它将它们一起播放

我已经尝试了
mediaPlayer.stop()
mediaPlayer.release()
,但是没有成功

我应该在
Parcalar
类中执行此操作吗?你可以在底部找到我的两个班级的代码


另外,Seekbar也有一个问题——当我播放音乐时,Seekbar将到达最终位置。但首先我想解决我的第一个问题

package com.example.myapplication;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.concurrent.TimeUnit;

public class MainActivity extends AppCompatActivity {
    private Button button;
    boolean isPaused;
    private ArrayList<String> musicNames;
    private double startTime = 0;
    private double finalTime = 0;

    private Handler myHandler= new Handler();
    private SeekBar seekBar;

    private int forwardTime = 5000;
    private int backwardTime = 5000;
    private ImageView playPause;
    private MediaPlayer mediaPlayer;
    private TextView textView1,textView2,textView3;

    public static int oneTimeOnly = 0;

    public ArrayList<String> getMusicNames() {
        return musicNames;
    }

    public MediaPlayer getMediaPlayer() {
        return mediaPlayer;
    }

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        playPause = findViewById(R.id.imageView);
        seekBar = findViewById(R.id.seekBar);

        textView1 = findViewById(R.id.textView1);
        textView2 = findViewById(R.id.textView2);
        textView3 = findViewById(R.id.textView3);
        textView2.setText("Song.Mp3");
        Bundle bundle = getIntent().getExtras();
        final int position = bundle.getInt("position");
        mediaPlayer = MediaPlayer.create(getApplicationContext(),R.raw.neureich);
        seekBar.setClickable(false);

        musicNames=new ArrayList<String>();
        musicNames.add("neureich");
        musicNames.add("neureichkisa");
        musicNames.add("traviscotthighestinthroom");

        if(!mediaPlayer.isPlaying()) {
            int u = getResources().getIdentifier(musicNames.get(position), "raw", "com.example.myapplication");
            mediaPlayer = MediaPlayer.create(getApplicationContext(), u);


        }
        else{
            mediaPlayer.stop();
            mediaPlayer.release();
            int u = getResources().getIdentifier(musicNames.get(position), "raw", "com.example.myapplication");
            mediaPlayer = MediaPlayer.create(getApplicationContext(), u);
            mediaPlayer.start();

        }

        playPause.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                   seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                    @Override
                    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                        if(fromUser)
                        mediaPlayer.seekTo(progress);
                        textView1.setText(String.format ("%d min,%d sec",
                                TimeUnit.MILLISECONDS.toMinutes((long)startTime),
                                TimeUnit.MILLISECONDS.toSeconds((long)startTime)-
                                        TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long)//
                                                startTime)))
                        );
                    }

                    @Override
                    public void onStartTrackingTouch(SeekBar seekBar) {

                    }

                    @Override
                    public void onStopTrackingTouch(SeekBar seekBar) {

                    }
                });
                isPaused=false;
                if(!mediaPlayer.isPlaying()){
                    mediaPlayer.start();
                    finalTime = mediaPlayer.getDuration();
                    startTime = mediaPlayer.getCurrentPosition();


                    if(oneTimeOnly == 0){
                        seekBar.setMax((int)finalTime);
                        oneTimeOnly = 1;
                    }
                    textView3.setText(String.format ("%d min,%d sec",
                            TimeUnit.MILLISECONDS.toMinutes((long)finalTime),
                            TimeUnit.MILLISECONDS.toSeconds((long)finalTime)- //172-52
                                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long)//toplam saniyeyi dakikaya çeviriyor
                                            finalTime)))

                    );

                    textView1.setText(String.format ("%d min,%d sec",
                            TimeUnit.MILLISECONDS.toMinutes((long)startTime),
                            TimeUnit.MILLISECONDS.toSeconds((long)startTime)-
                                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long)//
                                            startTime)))

                    );
                    seekBar.setProgress((int) startTime);
                    myHandler.postDelayed(UpdateSongTime,100);
                    playPause.setImageResource(R.drawable.pause);


                }

                else{
                    mediaPlayer.pause();
                    isPaused=true;
                    playPause.setImageResource(R.drawable.start);
                }

            }
        });


    }
    private Runnable UpdateSongTime = new Runnable() {
        @Override
        public void run() {
            startTime = mediaPlayer.getCurrentPosition();
            textView1.setText(String.format("%d min, %d sec",
                    TimeUnit.MILLISECONDS.toMinutes((long) startTime),
                    TimeUnit.MILLISECONDS.toSeconds((long) startTime) -
                            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
                                    toMinutes((long) startTime)))
            );
            seekBar.setProgress((int)startTime);
            myHandler.postDelayed(this, 100);
        }
    };
}
package com.example.myapplication;
导入android.media.MediaPlayer;
导入android.os.Bundle;
导入android.os.Handler;
导入android.view.view;
导入android.widget.Button;
导入android.widget.ImageView;
导入android.widget.SeekBar;
导入android.widget.TextView;
导入androidx.appcompat.app.appcompat活动;
导入java.util.ArrayList;
导入java.util.concurrent.TimeUnit;
公共类MainActivity扩展了AppCompatActivity{
私人按钮;
布尔值是有原因的;
私人音乐大师;
专用双起始时间=0;
私人双最终时间=0;
私有处理程序myHandler=新处理程序();
私人SeekBar SeekBar;
专用int forwardTime=5000;
专用int backwardTime=5000;
私有图像视图播放暂停;
私人媒体播放器;
私有文本视图文本视图1、文本视图2、文本视图3;
公共静态int-oneTimeOnly=0;
公共阵列列表getMusicNames(){
返回音乐名称;
}
公共媒体播放器getMediaPlayer(){
返回媒体播放器;
}
@凌驾
创建时受保护的void(最终捆绑包savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
playPause=findViewById(R.id.imageView);
seekBar=findViewById(R.id.seekBar);
textView1=findViewById(R.id.textView1);
textView2=findViewById(R.id.textView2);
textView3=findViewById(R.id.textView3);
textView2.setText(“Song.Mp3”);
Bundle Bundle=getIntent().getExtras();
最终整数位置=bundle.getInt(“位置”);
mediaPlayer=mediaPlayer.create(getApplicationContext(),R.raw.neureich);
seekBar.setClickable(假);
musicNames=新的ArrayList();
musicNames.add(“neureich”);
musicNames.add(“neureichkisa”);
音乐名称添加(“traviscotthighestinthroom”);
如果(!mediaPlayer.isPlaying()){
int u=getResources().getIdentifier(musicNames.get(position),“raw”,“com.example.myapplication”);
mediaPlayer=mediaPlayer.create(getApplicationContext(),u);
}
否则{
mediaPlayer.stop();
mediaPlayer.release();
int u=getResources().getIdentifier(musicNames.get(position),“raw”,“com.example.myapplication”);
mediaPlayer=mediaPlayer.create(getApplicationContext(),u);
mediaPlayer.start();
}
playPause.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
seekBar.setOnSeekbarchaneListener(新的seekBar.onSeekbarchaneListener(){
@凌驾
public void onProgressChanged(SeekBar-SeekBar、int-progress、boolean-fromUser){
如果(来自用户)
mediaPlayer.seekTo(进度);
textView1.setText(String.format(“%d分钟,%d秒”),
时间单位。毫秒。t分钟((长)开始时间),
时间单位。毫秒。到秒((长)开始时间)-
TimeUnit.MINUTES.toSeconds(TimeUnit.millides.toMinutes((长))//
开始时间)
);
}
@凌驾
开始跟踪触摸时的公共无效(SeekBar SeekBar){
}
@凌驾
TopTrackingTouch(SeekBar SeekBar)上的公共无效{
}
});
isPaused=false;
如果(!mediaPlayer.isPlaying()){
mediaPlayer.start();
finalTime=mediaPlayer.getDuration();
startTime=mediaPlayer.getCurrentPosition();
if(oneTimeOnly==0){
seekBar.setMax((int)finalTime);
一次性=1;
}
textView3.setText(String.format(“%d分钟,%d秒”),
时间单位。毫秒。toMinutes((长)finalTime),
时间单位。毫秒。到秒((长)最终时间)-//172-52
TimeUnit.MINUTES.toSeconds(TimeUnit.millizes.toMinutes((长)//toplam saniyeyi dakikayaçeviriyor
最终期限)
);
textView1.setText(String.format(“%d分钟,%d秒”),
时间单位。毫秒。t分钟((长)开始时间),
时间单位。毫秒。到秒((长)开始时间)-
TimeUnit.MINUTES.toSeconds(TimeUnit.millides.toMinutes((长))//
开始时间)
);
seekBar.setProgress((int)startTime);
postDelayed(UpdateSongTime,100);
playPause.setImageResource(R.drawable.pause);
}
否则{
mediaPlayer.pause();
isPaused=真;
playPause.setImageResource(R.drawable.start);
}
}
});
}
private Runnable UpdateSongTime=new Runnable(){
@凌驾
公开募捐{
startTime=mediaPlayer.getCurrentPosition();
package com.example.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;

public class Parcalar extends AppCompatActivity {

    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.parcalar);

        listView = findViewById(R.id.listView);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Intent intent = new Intent(getApplicationContext(),MainActivity.class);
            intent.putExtra("position",position);
            startActivity(intent);


            }
        });


    }
}