这里我有2个音频控制器按钮,播放和暂停。如何将两个按钮组合成一个?我还需要更改图像图标。
在onCreate中,我最初禁用了暂停按钮。
pauseButton.setEnabled(false);
以下是“播放”按钮的实现。
public void play(View view){
mediaPlayer.start();
...
pauseButton.setEnabled(true);
playButton.setEnabled(false);
}
以下是暂停按钮的实现。
public void pause(View view){
mediaPlayer.pause();
pauseButton.setEnabled(false);
playButton.setEnabled(true);
}
答案 0 :(得分:1)
制作一个按钮并带一个标记
Boolean buttonflag=true;//initially true
假设true表示播放,false表示暂停。
public void button(View view)
{
if(buttonflag)//when true play
{
mediaPlayer.play();
buttonflag=false;//set to false so that on next click else will work
}
else//when false pause
{
mediaPlayer.pause();
buttonflag=true;//set to true so that on next click if will work
}
}
答案 1 :(得分:0)
MediaPlayer m1 = null;
playAndStopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopPlaying();
m1=MediaPlayer.create(MainActivity.this, R.raw.sound1);
m1.start();
}
});
private void stopPlaying() {
if (mp1 != null) {
m1.stop();
m1.release();
m1 = null;
}
这对你有用!祝你好运。
答案 2 :(得分:0)
你可以通过两种方式做到这一点:
1.采用框架布局并将两个按钮相互重叠(默认情况下设置为可见按钮并隐藏暂停按钮)并根据它设置可见性
public void play(View view) {
if(pauseButton.isVisible()) {
pauseButton.setVisibility(View.GONE);
}
playButton.setVisibility(View.VISIBLE);
}
public void pause(View view) {
if(playButton.isVisible()) {
playButton.setVisibility(View.GONE);
}
pauseButton.setVisibility(View.VISIBLE);
}
2.您只能使用一个按钮并将其更改为backgroundResource(默认情况下设置后台资源播放),如
public void play(View view) {
Button.setBackgroundResourec(R.drawable.pause);
}
public void pause(View view) {
Button.setBackgroundResourec(R.drawable.play);
}
答案 3 :(得分:0)
我知道现在回答这个问题已经很晚了,但是我已经搜索了这个问题,谷歌在结果的顶部给我看了这个,但是因为我看到这里没有令人满意的结果,所以我在这里发帖我的代码,以便它可以帮助其他
fabBtnPlayAudio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!playPause) {
fabBtnPlayAudio.setImageResource(R.drawable.ic_pause_circle_outline_black_24dp);
if (intialStage){
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource("URL for audio file.. ");
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
else {
if (!mediaPlayer.isPlaying())
mediaPlayer.start();
}
playPause = true;
} else {
fabBtnPlayAudio.setImageResource(R.drawable.ic_play_circle_outline_black_24dp);
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
} else {
mediaPlayer.start();
}
playPause = false;
}
}
});