java - MediaPlayer 暂停和播放错误

标签 java android xml if-statement media-player

我正在使用 Java 和 XML 为 Android 构建应用程序。该应用程序的用户必须能够收听和暂停音乐。所以我做了一个按钮,你可以用它来播放和暂停曲子。我创建了一个函数,其中必须更改 ImageViewsrc。但是 Eclipse 在 mp.start()mp.pause() 处给我一个错误,它说:“mp cannot be resolved”.

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

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

最佳答案

那是因为我认为您已经在 onCreate 方法上声明并实例化了 mp,而它在 klikopplaybutton() 方法中不可访问。

尝试这样的事情。

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

更新您的 ImageView 上的错误。

您在 playsoundButton ImageView 对象中收到错误,因为您再次声明它并在 setupButtonClickListeners 方法中执行了 findViewById,并且它在 klikopplaybutton 方法中不可访问。

试试这个。

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

}

关于java - MediaPlayer 暂停和播放错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15327050/

相关文章:

android - System.out.println() 的等效方法而不是 Log

javascript - 使用 JavaScript 从 XML 文件搜索并输出数据

java - 如何通过 jaxb 从生成的 XML 中删除不需要的元素

java - Android - 如何从非 Activity 、非 fragment 静态类获取上下文?

java - Java 中的物理模拟

java - 无法使用 Java PreparedStatement 在 MySQL 中存储 UTF-8 内容

带有自定义水平标签的 Android-GraphView 显示不正确

java - 如何从 AFP 文件中提取元数据?

android - Android 中 Activity 的 Root View 对将要加载到其中的 subview 有任何先验知识吗?

python - 停止 minidom 将 < > 转换为 < >