MediaPlayer暂停和播放错误 [英] MediaPlayer pausing and playing error

查看:195
本文介绍了MediaPlayer暂停和播放错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Java和XML构建Android应用程序。应用程序的用户必须能够收听曲调并暂停。所以我制作了一个按钮,你可以用它来播放和暂停曲调。我做了一个函数,其中必须更改 ImageView src 。但是Eclipse在 mp.start() mp.pause()中给出了一个错误,它说: mp无法解决

I'm building an application for Android with Java and XML. 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. However Eclipse gives me an error at the mp.start() and the mp.pause(), which says: "mp cannot be resolved".

我不知道我现在做错了什么,我希望有人可以帮助我。

I don't know what I'm doing wrong right now and I hope somebody can help me.

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代码:

<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" />


推荐答案

因为我认为你已经声明并实例化了mp onCreate方法,它在klikopplaybutton()方法中无法访问。

That because I think you have declared and instantiated mp on the onCreate method and it is not accessible in klikopplaybutton() method.

尝试这样的事情。

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 ,用于ImageView上的错误。

UPDATE for ERRORS on your ImageView.

你的playsoundButton ImageView对象出现错误,因为你再次声明它并在setupButtonClickListeners方法中执行了findViewById,并且它在klikopplaybutton方法中不可用。

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.

试试这个。

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;
   }

}

这篇关于MediaPlayer暂停和播放错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆