2013-03-11 72 views
2

我在eclipse中創建了一個應用程序來播放和停止mp3文件。一切都很好,除了當我播放音頻文件,並停止它,我想重播它,播放btn不會wort!我想知道有人能幫助我嗎?提前致謝。 這裏談到的代碼:如何在Android應用程序中播放和停止mp3文件

package ir.polyglotcenter.childrenmostfrequentwords; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class Main extends Activity { 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    //Related to the media player 
    final MediaPlayer myMediaPlayer = MediaPlayer.create(Main.this, R.raw.audio); 
    //Button related to play btn 
    Button myButtonOne = (Button) findViewById(R.id.btn_audio); 
    myButtonOne.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      myMediaPlayer.start(); 

     } 
    }); 

    //Button related to stop btn 
    Button myButtonTwo = (Button) findViewById(R.id.btn_stop); 
    myButtonTwo.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      myMediaPlayer.stop(); 

     } 
    }); 

} 
} 
+0

,爲什麼你有在MediaPlayer決賽? – 2013-03-11 18:52:32

+0

導致編輯要我這樣做 – 2013-03-11 18:59:07

回答

0

試試這個(只是在公共區域定義媒體播放器)

public class Main extends Activity { 

MediaPlayer myMediaPlayer = null; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    //Related to the media player 

    myMediaPlayer = MediaPlayer.create(Main.this, R.raw.audio); 

    //Button related to play btn 
    Button myButtonOne = (Button) findViewById(R.id.btn_audio); 
    myButtonOne.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      myMediaPlayer.start(); 

     } 
    }); 

    //Button related to stop btn 
    Button myButtonTwo = (Button) findViewById(R.id.btn_stop); 
    myButtonTwo.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      myMediaPlayer.pause(); 

     } 
    }); 

} 
} 
+0

不幸的是它沒有工作 – 2013-03-11 19:11:22

+0

這在不能播放任何部分,例如'sdcasd/1.mp3'的MP3。 – 2014-06-11 11:04:49

2
,如果你想開始按鈕單擊/停止的聲音,然後使用 MediaPlayer.start()

MediaPlayer.pause()目前暫停播放在開始按鈕點擊時重新開始的聲音。並重寫活動以最終停止並釋放MediaPlayer。使你的代碼更改爲:

的onStop按鈕點擊:

myButtonTwo.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      myMediaPlayer.pause(); //>>pause current sound 
      myMediaPlayer.seekTo(0); //>> seek to start it again 

     } 
    }); 

並重寫的onPause活動的方法:

+0

非常感謝您的幫助 – 2013-03-11 19:19:32

0

點在if或任何環路

的循環實現的MediaPlayer
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch (v.getId()){ 
    case R.id.buttonPlay: 
     //mp.reset(); 
     mp=MediaPlayer.create(Ur Context.this, R.raw."ursong.mp3"); 
     mp.start(); 

     break; 
    case R.id.buttonStop: 
     mp.stop(); 

     break; 
    } 
} 
0

您必須執行以下操作:

final MediaPlayer myMediaPlayer = MediaPlayer.create(Main.this, R.raw.audio); 

myButtonOne.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     final MediaPlayer myMediaPlayer = MediaPlayer.create(Main.this,R.raw.audio); 
     myMediaPlayer.start(); 

    } 
}); 
相關問題