如果
MediaPlayer直接在活动上使用该类,则可以使用其
OnCompletionListener来检测媒体是否停止播放。在其中,
OnCompletionListener您可以将按钮的文本从“暂停”切换为“播放”,如下所示:
mPlayer.setonCompletionListener(new MediaPlayer.onCompletionListener() { public void onCompletion(MediaPlayer mp) { mPlayButton.setText("Play"); }});我将您的AudioPlayer集成到片段中,使其看起来像:
public class HelloMoonFragment extends Fragment { private Button mPlayButton; private Button mStopButton; private MediaPlayer mPlayer; private boolean mCompleted = false; @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_hello_moon, parent, false); mPlayButton = (Button) v.findViewById(R.id.hellomoon_playButton); mPlayButton.setText("Play"); mPlayButton.setonClickListener(new View.onClickListener(){ public void onClick(View v) { if(mPlayer == null) { mPlayer = MediaPlayer.create(c, R.raw.one_small_step); mPlayer.setonCompletionListener(new MediaPlayer.onCompletionListener() { public void onCompletion(MediaPlayer mp) { stopMediaPlayer(); mPlayButton.setText("Play"); } }); } if(mPlayButton.getText().equals("Play")) { mPlayButton.setText("Pause"); mPlayer.start(); } else if(mPlayButton.getText().equals("Pause")){ mPlayButton.setText("Play"); mPlayer.pause(); } } }); mStopButton = (Button)v.findViewById(R.id.hellomoon_stopButton); mStopButton.setonClickListener(new View.onClickListener() {public void onClick(View v) { stopMediaPlayer(); mPlayButton.setText("Play");} }); return v; } @Override public void onDestroy() { stopMediaPlayer(); super.onDestroy(); } public void stopMediaPlayer() { if (mPlayer != null) { mPlayer.release(); mPlayer = null; } }}


