2013-04-29 61 views
0

我想製作一個簡單的Android MP3播放器,它將播放由mediaplayer = mediaplayer.create代碼行聲明的MP3!爲什麼我的Android MP3播放器代碼不起作用?

XML代碼是一個簡單的按鈕,它說玩!

我想,當按鈕被按下它來播放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 
    } 
} 
} 
+0

不應該'buttonPlayStop.getText()==的getString( R.string.play_str)'''buttonPlayStop.getText()。equals(getString(R.string.play_str))'? – 2013-04-29 13:41:41

回答

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


} 
} 
相關問題