0

mediaplayer=mediaplayer.create コード行で宣言された MP3 を再生する、単純な Android MP3 プレーヤーを作成しようとしています!

XML コードは、play! という 1 つの単純なボタン用です。

ボタンを押したときに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
    }
}
}
4

2 に答える 2

1

まず、メディア プレーヤーが再生されているかどうかボタンのキャプションを確認することは、あまり良い考えではありません。それは間違いです。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();
    }
}

を設定することもできますonCompletionListener

class PlayerActivity implements MediaPlayer.OnCompletionListener {

void onCompletion( MediaPlayer mp ) {
    buttonPlayStop.setText( getString(R.string.play_str ) );
}

そしてあなたのinitViews()

mediaPlayer.setOnCompletionListener( this );
于 2013-04-29T13:54:00.703 に答える
0
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));
    }


}
}
于 2013-04-29T14:41:27.960 に答える