Java 为什么我的Android MP3播放器代码不起作用?

Java 为什么我的Android MP3播放器代码不起作用?,java,android,eclipse,media-player,mp3,Java,Android,Eclipse,Media Player,Mp3,我正在尝试制作一个简单的Android MP3播放器,它将播放由mediaplayer=mediaplayer.create代码行声明的MP3 XML代码是一个简单的按钮,上面写着play 我想在按下按钮时播放MP3 有人能帮忙吗 import android.R; //This automatically generates R file (references resources) import android.app.Activity; import android.media.Medi

我正在尝试制作一个简单的Android MP3播放器,它将播放由mediaplayer=mediaplayer.create代码行声明的MP3

XML代码是一个简单的按钮,上面写着play

我想在按下按钮时播放MP3

有人能帮忙吗

import android.R;  //This automatically generates R file (references resources)
import android.app.Activity;
import android.media.MediaPlayer; - //This allows for predefined MP3 start/stop classes      to be used
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener; 
import android.widget.Button;

public class Mp3player extends Activity {

private Button buttonPlayStop;
private MediaPlayer mediaPlayer;


private final Handler handler = new Handler();


@Override
public void onCreate(Bundle icicle) { //Place holder for ‘OnFreeze’ parameter
        super.onCreate(icicle);
        setContentView(R.layout.activity_main); //Referencing XML file
        initViews();  

}

// setOnClickListener method (buttonClick())
private void initViews() {
    buttonPlayStop = (Button) findViewById(R.id.ButtonPlayStop);
    buttonPlayStop.setOnClickListener(new OnClickListener() {@Override public void   onClick(View v) {buttonClick();}});

    mediaPlayer = MediaPlayer.create(this, R.raw.music); // Sound file location


// event handler for buttonClick event
private void buttonClick(){ //When button is clicked do…
    if (buttonPlayStop.getText() == getString(R.string.play_str)) {
        buttonPlayStop.setText(getString(R.string.pause_str)); //
        try{
            mediaPlayer.start(); //Play MP3
        }
    }else {
        buttonPlayStop.setText(getString(R.string.play_str));
        mediaPlayer.pause(); //Pause MP3
    }
}
}

首先,检查媒体播放器是否正在播放的按钮标题并不是一个好主意——而你做得不对
String.equals()
检查字符串是否相等,而
==
检查字符串引用是否相等

private void buttonClick(){ //When button is clicked do…
    if( !mediaPlayer.isPlaying() ) {
        buttonPlayStop.setText( getString(R.string.pause_str) );
        try {
            mediaPlayer.start(); // Play MP3
        } catch ( Exception e ) {
            // Handle Exception
        }
    } else {
        buttonPlayStop.setText( getString(R.string.play_str ) );
        mediaPlayer.pause();
    }
}
您可能还需要设置您的:

在您的
initViews()
中:


不应该
buttonlaystop.getText()==getString(R.string.play_str)
be
buttonlaystop.getText().equals(getString(R.string.play_str))
class PlayerActivity implements MediaPlayer.OnCompletionListener {

void onCompletion( MediaPlayer mp ) {
    buttonPlayStop.setText( getString(R.string.play_str ) );
}
mediaPlayer.setOnCompletionListener( this );
package com.GuitarPrep1;

import android.R;  //This automatically generates R file (references resources)
import android.app.Activity;
import android.media.MediaPlayer; - //This allows for predefined MP3 start/stop classes      to be used
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener; 
import android.widget.Button;

public class Mp3player extends Activity {

private Button buttonPlayStop;
private MediaPlayer mediaPlayer;


private final Handler handler = new Handler();


@Override
public void onCreate(Bundle icicle) { //Place holder for ‘OnFreeze’ parameter
        super.onCreate(icicle);
        setContentView(R.layout.activity_main); //Referencing XML file
        mediaPlayer = MediaPlayer.create(this, R.raw.music); // Sound file location
        initViews();  
        mediaPlayer.setOnCompletionListener (new MediaPlayer.OnCompletionListener(){

        @Override
        public void onCompletion(MediaPlayer arg0) {
        // TODO Auto-generated method stub
        buttonPlayStop.setText(getString(R.string.play_str));
        }});

}

// setOnClickListener method (buttonClick())
private void initViews() {
    buttonPlayStop = (Button) findViewById(R.id.ButtonPlayStop);
    buttonPlayStop.setOnClickListener(new OnClickListener() {@Override public void   onClick(View v) {buttonClick();}});




// event handler for buttonClick event
private void buttonClick(){ //When button is clicked do…      
    if(mediaPlayer!=null && mediaPlayer.isPlaying()){
             mediaPlayer.pause();
             buttonPlayStop.setText(getString(R.string.play_str));
    }else if(mediaPlayer!=null){
             mediaPlayer.start();
             buttonPlayStop.setText(getString(R.string.pause_str));
    }


}
}