我有5首歌曲的音乐播放列表。我只是希望播放和停止按钮工作只要我在应用程序中。而且我可以在我想要的时候停止音乐并开始另一场音乐。
现在如何工作......音乐在PLAY按钮上播放,当我点击STOP按钮时它会停止,但是我想再播放一首其他歌曲或同一首歌,没有任何反应。请帮忙。
public class glavna extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MediaPlayer MPRadio1 = MediaPlayer.create(this, R.raw.pj1);
final MediaPlayer MPRadio2 = MediaPlayer.create(this, R.raw.pj2);
final MediaPlayer MPRadio3 = MediaPlayer.create(this, R.raw.pj3);
final MediaPlayer MPRadio4 = MediaPlayer.create(this, R.raw.pj4);
final MediaPlayer MPRadio5 = MediaPlayer.create(this, R.raw.pj5);
final RadioButton rb1, rb2, rb3, rb4, rb5;
rb1 = (RadioButton) findViewById(R.id.radio1);
rb2 = (RadioButton) findViewById(R.id.radio2);
rb3 = (RadioButton) findViewById(R.id.radio3);
rb4 = (RadioButton) findViewById(R.id.radio4);
rb5 = (RadioButton) findViewById(R.id.radio5);
Button btn = (Button) findViewById(R.id.buttonplay);
Button btnStop = (Button) findViewById(R.id.buttonStop);
btnStop.setOnClickListener(new View.OnClickListener() {
public void onClick(View b){
MPRadio1.stop();
MPRadio2.stop();
MPRadio3.stop();
MPRadio4.stop();
MPRadio5.stop();
};
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(rb1.isChecked())
{
MPRadio1.start();
}
else
{
if(rb2.isChecked())
{
MPRadio2.start();
}
else
{
if(rb3.isChecked())
{
MPRadio3.start();
}
else
{
if(rb4.isChecked())
{
MPRadio4.start();
}
else
{
if(rb5.isChecked())
{
MPRadio5.start();
}
}
}
}
};
}
}
);}}
答案 0 :(得分:7)
再次播放歌曲重置媒体播放器,再次设置数据源并启动
mp.reset();
mp.setDataSource(MEDIA_PATH);
mp.prepare();
mp.start();
答案 1 :(得分:1)
当停止后按播放按钮时,播放按钮永远不会工作 - 对于这个问题,我们可以在停止按钮中再次创建对象。 例如; -stop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mPlayer.isPlaying())
mPlayer.stop();
mPlayer = MediaPlayer.create(mediaplayeractivity.this, R.raw.adidas);
}
});}
答案 2 :(得分:0)
当你点击停止按钮后游戏不能正常工作...只需将你的媒体播放器对象作为一个应该修复它的对象数组。
final MediaPlayer[] mediaPlayer = {MediaPlayer.create(getApplicationContext(), R.raw.song_name)};
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaPlayer[0].stop();
mediaPlayer[0] = MediaPlayer.create(getApplicationContext(),R.raw.song_name);
}
});
答案 3 :(得分:0)
您可以在此处查看此演示示例, 我连续不断地循环播放音频,然后按一下“击键”并再次播放。
package com.Test.demo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import static java.util.concurrent.TimeUnit.SECONDS;
public class MainActivity extends AppCompatActivity {
Button scan;
Button stop;
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scan=(Button)findViewById(R.id.scan);
stop=(Button)findViewById(R.id.stop);
mp = MediaPlayer.create(this, R.raw.trackeralertseparation);
scan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mp.setLooping(true);
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mp.reset();
mp.release();
}
});
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mp.isPlaying()){
mp.stop();
}
mp=MediaPlayer.create(getApplicationContext(), R.raw.trackeralertseparation);
}
});
}
}
设计文件在下面,带有简单按钮。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="195dp"
android:gravity="center_vertical"
android:padding="4dp"
android:text="Play"
android:textSize="26sp"
android:textStyle="bold" />
<Button
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="stop"
android:padding="4dp"
android:layout_centerInParent="true"
android:textSize="26sp"
android:textStyle="bold"/>
</RelativeLayout>
答案 4 :(得分:0)
停止音乐时,必须在创建时再次声明歌曲。
使用Android Studio的简单方法:
mPlayer = MediaPlayer.create(mediaplayeractivity.this, R.raw.adidas);