简体   繁体   English

MediaPlayer暂停和播放错误

[英]MediaPlayer pausing and playing error

I'm building an application for Android with Java and XML. 我正在使用Java和XML构建Android应用程序。 The user of the app must be able to listen to a tune and also pause it. 应用程序的用户必须能够收听曲调并暂停。 So I made one button with which you can play and pause the tune. 所以我制作了一个按钮,您可以用它来播放并暂停曲调。 I made a function in which the src of the ImageView must be changed. 我做了一个函数,其中必须更改ImageViewsrc However Eclipse gives me an error at the mp.start() and the mp.pause() , which says: "mp cannot be resolved" . 但是Eclipse在mp.start()mp.pause()给出了一个错误,它说: “mp无法解析”

I don't know what I'm doing wrong right now and I hope somebody can help me. 我不知道我现在做错了什么,我希望有人可以帮助我。

Java code: Java代码:

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

public class Level01vraag01 extends Activity implements OnClickListener {

    int playknopvariable = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vraaglayout);
        setupButtonClickListeners();
        final MediaPlayer mp = MediaPlayer.create(Level01vraag01.this, R.raw.mcdonalds);
    }

    private void setupButtonClickListeners() {
        ImageView playsoundButton = (ImageView) findViewById(R.id.playsoundbutton);
        playsoundButton.setOnClickListener(this);
    }

    private void klikopplaybutton() {
        if (playknopvariable == 0) {
            mp.start();
            playknopvariable = 1;
            playsoundButton.setImageResource(R.drawable.playsoundbutton);
        } else {
            mp.pause();
            playknopvariable = 0;
            playsoundButton.setImageResource(R.drawable.pause);
        }
    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.playsoundbutton:
            klikopplaybutton();
            break;
        }

XML code: XML代码:

<ImageView
    android:id="@+id/playsoundbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/guessbutton"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="33dp"
    android:src="@drawable/playsoundbutton" />

That because I think you have declared and instantiated mp on the onCreate method and it is not accessible in klikopplaybutton() method. 那是因为我认为你已经在onCreate方法上声明并实例化了mp,并且在klikopplaybutton()方法中无法访问它。

Try something like this. 尝试这样的事情。

public class Level01vraag01 extends Activity implements OnClickListener {

    int playknopvariable = 0;
    MediaPlayer mp;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vraaglayout);
        setupButtonClickListeners();
        mp = MediaPlayer.create(Level01vraag01.this, R.raw.mcdonalds);

    }

private void setupButtonClickListeners()
{
    ImageView playsoundButton = (ImageView) findViewById(R.id.playsoundbutton);
    playsoundButton.setOnClickListener(this);
}

UPDATE for ERRORS on your ImageView. 更新 ImageView上的错误。

You are getting an error in your playsoundButton ImageView object because you again declared it and executed the findViewById in setupButtonClickListeners method and it is not acessible in klikopplaybutton method. 您在playsoundButton ImageView对象中收到错误,因为您再次声明它并在setupButtonClickListeners方法中执行findViewById,并且它在klikopplaybutton方法中不可访问。

Try this one. 试试这个吧。

public class Level01vraag01 extends Activity implements OnClickListener {

    int playknopvariable = 0;
    MediaPlayer mp;
    ImageView playsoundButton;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vraaglayout);
        setupButtonClickListeners();
        mp = MediaPlayer.create(Level01vraag01.this, R.raw.mcdonalds);

    }

    private void setupButtonClickListeners(){
        playsoundButton = (ImageView) findViewById(R.id.playsoundbutton);
        playsoundButton.setOnClickListener(this);
    }

    private void klikopplaybutton(){

        if (playknopvariable == 0){
           mp.start();
           playknopvariable = 1;
           playsoundButton.setImageResource(R.drawable.playsoundbutton);
       }else{
           mp.pause();
           playknopvariable = 0;
           playsoundButton.setImageResource(R.drawable.pause);
   }

   public void onClick(View v) {

        switch(v.getId()){
        case R.id.playsoundbutton:
            klikopplaybutton();
        break;
   }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM