-1

我正在开发一个android应用程序。在应用程序中,我在activity1中有一个按钮。单击该按钮时,它会跳转到activity2,然后为activity2 播放背景音乐。

我已经使用媒体播放器在活动 2 中播放音乐。

现在我在activity1中放置了一个声音按钮,我希望当用户点击它时,应该禁用要在activity2中播放的背景音乐,如果用户再次点击声音按钮......activity2中的音乐是启用。

如何完成这个任务。我是初学者,我不知道该怎么做。任何人都可以帮我解决这个问题吗????

任何帮助都将是可观的....

活动1 java代码..

package com.example.quizproject;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;

public class Menu extends Activity implements View.OnClickListener{

Button btn4,btn5,btn6,btn7,btn8;
ImageButton imgbtn1,imgbtn2;
MediaPlayer mp2;


public void onCreate(Bundle icici) {
    super.onCreate(icici);
    setContentView(R.layout.menupg);


    mp2=MediaPlayer.create(this, R.drawable.buttonsound);



   btn4=(Button)findViewById(R.id.btn4);
   btn5=(Button)findViewById(R.id.btn5);
   btn6=(Button)findViewById(R.id.btn6);
   btn7=(Button)findViewById(R.id.btn7);
   btn8=(Button)findViewById(R.id.btn8);

   imgbtn1=(ImageButton)findViewById(R.id.imgbtn1);
   imgbtn2=(ImageButton)findViewById(R.id.imgbtn2);

   btn4.setOnClickListener(this);
   btn5.setOnClickListener(this);
   btn6.setOnClickListener(this);
   btn7.setOnClickListener(this);
   btn8.setOnClickListener(this);
   imgbtn1.setOnClickListener(this);
   imgbtn2.setOnClickListener(this);

}

public void onClick(View v) {

    mp2.start();

    if((v.getId())==(R.id.btn5))
    {
        startActivity(new Intent("com.example.quizproject.Highscore"));
    }
    if((v.getId())==(R.id.btn4))
    {

        startActivity(new Intent("com.example.quizproject.Ques"));
    }
    if((v.getId())==(R.id.btn6))
    {

        startActivity(new Intent("com.example.quizproject.About"));
    }
    if((v.getId())==(R.id.btn7))
    {


        startActivity(new Intent("com.example.quizproject.Addques"));
    }
    if((v.getId())==(R.id.imgbtn2))
    {

    }
    if((v.getId())==(R.id.btn8))
    {

        Intent intent = new Intent(this, StartQuiz.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
    }


}
public boolean onKeyDown(int keycode, KeyEvent event)
{
    if(keycode==(KeyEvent.KEYCODE_DPAD_CENTER))
    {
        finish();
    }
    return super.onKeyDown(keycode, event);
}


}

活动 1 的 xml 代码....

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/dar"
android:gravity="center"
android:orientation="vertical" >

<Button
    android:id="@+id/btn4"
    android:layout_width="250dp"
    android:layout_height="40dp"
    android:text="PLAY" 
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:background="@drawable/quesbtn_shape"/>

<Button
    android:id="@+id/btn5"
    android:layout_width="250dp"
    android:layout_height="40dp"
    android:text="HIGH SCORE" 
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:background="@drawable/quesbtn_shape"/>

<Button
    android:id="@+id/btn6"
    android:layout_width="250dp"
    android:layout_height="40dp"
    android:text="ABOUT QUIZ" 
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:background="@drawable/quesbtn_shape"/>

<Button
    android:id="@+id/btn7"
    android:layout_width="250dp"
    android:layout_height="40dp"
    android:text="ADD QUESTION" 
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:background="@drawable/quesbtn_shape"/>

<Button
    android:id="@+id/btn8"
    android:layout_width="250dp"
    android:layout_height="40dp"
    android:text="Exit" 
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:background="@drawable/quesbtn_shape"/>

<TableLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <TableRow >
  <ImageButton
    android:id="@+id/imgbtn1"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:src="@drawable/sound" 
    android:layout_marginLeft="87dp"
    android:layout_marginTop="20dp"
    android:background="@drawable/quesbtn_shape"/>

  <ImageButton
    android:id="@+id/imgbtn2"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:src="@drawable/music"
    android:layout_marginLeft="40dp"
    android:layout_marginTop="20dp"
     android:background="@drawable/quesbtn_shape"/>



    </TableRow>
   </TableLayout>

</LinearLayout>

活动2 java代码..

package com.example.quizproject;

import java.lang.reflect.Method;
import java.security.PublicKey;
import java.util.Random;
import java.util.Set;
import java.util.Timer;
import java.util.concurrent.DelayQueue;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class Ques extends Activity implements View.OnClickListener{

TextView txt17,txt18,txt21,txt19,txt20;

Button btn10,btn11,btn12;

MediaPlayer mp1,mp5,mp;
ImageView imgv;

int score=0,ch=3,q=1;
String ans;


public void onCreate(Bundle icici) {
    super.onCreate(icici);
    setContentView(R.layout.activity_main);
    mp1=MediaPlayer.create(this, R.drawable.buzzer);
    mp5=MediaPlayer.create(this, R.drawable.belltone);
    mp=MediaPlayer.create(this, R.drawable.bgmusic);
    mp.setVolume(50,50);
    mp.start();
   mp.setOnCompletionListener(new OnCompletionListener() {

        public void onCompletion(MediaPlayer mp) {
            mp.release();
            // TODO Auto-generated method stub

        }
    });

    txt17=(TextView)findViewById(R.id.txt17);
    txt21=(TextView)findViewById(R.id.txt21);
    txt19=(TextView)findViewById(R.id.txt19);
    txt20=(TextView)findViewById(R.id.txt20);
    txt18=(TextView)findViewById(R.id.txt18);
    btn10=(Button)findViewById(R.id.btn10);
    btn10.setOnClickListener(this);
    btn11=(Button)findViewById(R.id.btn11);
    btn11.setOnClickListener(this);
    btn12=(Button)findViewById(R.id.btn12);
    btn12.setOnClickListener(this);
    imgv=(ImageView)findViewById(R.id.imageButton1);






        }



public void stopMusic()
{
    mp.stop();
    mp.release();
    mp = null;
}
public void stopMusic1()
{
    mp1.stop();


}
public void stopMusic2()
{
    mp5.stop();


}

public void onClick(View v) {
    // TODO Auto-generated method stub
    stopMusic1();
           stopMusic();
            stopMusic2();

}

这是在activity2中没有问题的代码......activity1中id为imgbtn2的imagebutton应该禁用activity2的音乐。

例如,如果用户按下图像按钮,那么当它跳到活动 2 时,不应该播放音乐,如果用户再次按下图像按钮,那么当它跳到活动 2 时,音乐应该在后台播放.....

4

1 回答 1

1

只需使用任何方法来停止您正在使用的 API 中的音乐,例如在MediaPlayer中,您将调用stop()来停止它并调用pause()来暂停它。

于 2012-08-18T11:35:47.450 回答