如何在一个按钮中播放和暂停-Android
我的媒体播放器中有两个按钮,播放和暂停广播电台。我想让它只有一个按钮,有两个功能。第一次单击我想播放它,第二次单击我想暂停它。当我再次点击它时,我想播放它。我需要帮助。这是我的密码如何在一个按钮中播放和暂停-Android,android,stream,radio,playback,Android,Stream,Radio,Playback,我的媒体播放器中有两个按钮,播放和暂停广播电台。我想让它只有一个按钮,有两个功能。第一次单击我想播放它,第二次单击我想暂停它。当我再次点击它时,我想播放它。我需要帮助。这是我的密码 play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); play.setOnClickListener(new View.OnClickListener() { public void onCl
play = (Button) findViewById(R.id.play);
pause = (Button) findViewById(R.id.pause);
play.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
play();
}
});
play.performClick();
pause.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
pause();
}
});
}
private void play() {
Uri myUri = Uri.parse("Shoutcast URL");
try {
if (mp == null) {
this.mp = new MediaPlayer();
} else {
mp.stop();
mp.reset();
}
mp.setDataSource(this, myUri); // Go to Initialized state
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setOnPreparedListener(this);
mp.setOnBufferingUpdateListener(this);
mp.setOnErrorListener(this);
mp.prepareAsync();
Log.d(TAG, "LoadClip Done");
} catch (Throwable t) {
Log.d(TAG, t.toString());
}
}
@Override
public void onPrepared(MediaPlayer mp) {
Log.d(TAG, "Stream is prepared");
mp.start();
}
private void pause() {
mp.pause();
}
@Override
public void onDestroy() {
super.onDestroy();
stop();
}
public void onCompletion(MediaPlayer mp) {
stop();
}
只创建一个按钮,然后添加buttonstatus之类的内容。然后您可以检查侦听器中的状态。
例如:
boolean isPlaying = false;
playPause = (Button) findViewById(R.id.play);
playPause.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if (isPlaying) {
pause();
}else{
play();
}
isPlaying = !isPlaying;
}
});
例如,这里有一个带有android:onClick属性的切换按钮:
<ToggleButton
android:id="@+id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="Vibrate on"
android:textOff="Vibrate off"
android:onClick="onToggleClicked"/>
您可以使用切换按钮:
toggleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (toggleButton.isChecked()) {
play();
} else {
pause();
}
}
});
您还可以从切换按钮中删除绿色条
public void playpause(){
if(!mp.isPlaying()){ // here mp is object of MediaPlayer class
mp.start();
//showNotification("Player State Plying");
}
else if(mp.isPlaying()){
mp.pause();
//showNotification("Player State Pause");
}
}
检查玩家状态不需要声明任何布尔变量。mediaplayer类中已存在名为-isplay()的方法 使用单个按钮尝试播放暂停的代码序列
public void playpause(){
if(!mp.isPlaying()){ // here mp is object of MediaPlayer class
mp.start();
//showNotification("Player State Plying");
}
else if(mp.isPlaying()){
mp.pause();
//showNotification("Player State Pause");
}
}
为它创建一个布尔值,如果它是“PLAY”,则调用“
pause()
”,切换变量,反之亦然。您能帮我编辑代码吗?我是android的新手。它说将buttonStatus的修饰符更改为finalthen当我放入final boolean时,它说它不能定义,因为它是封闭类型。将它声明为类变量你必须将变量isPlaying放在函数之外。例如,直接在你的类名下,它说将b的修饰符改为final,然后当我放入final boolean时,它说它无法定义,因为它是封闭类型。这看起来很酷,当我尝试将代码添加到ToggleClicked时,我得到错误“ToggleButton无法解析为类型”啊nevermind,我发现您需要导入toggleclass:“import android.widget.ToggleButton;”
public void playpause(){
if(!mp.isPlaying()){ // here mp is object of MediaPlayer class
mp.start();
//showNotification("Player State Plying");
}
else if(mp.isPlaying()){
mp.pause();
//showNotification("Player State Pause");
}
}