gpt4 book ai didi

Android MediaPlayer 停止和播放

转载 作者:IT老高 更新时间:2023-10-28 22:12:34 27 4
gpt4 key购买 nike

我正在创建包含 2 个按钮的 Android 应用程序,点击每个按钮播放一个 mp3 文件。问题是当我播放 button1 时它会播放 sound1,当我单击 button2 时它会播放 sound2

我检查其他玩家的每个按钮是否正常工作,然后我停止它并播放点击的那个

但是如果我点击同一个按钮两次,它会在后台继续播放第一个音频并再次播放另一个音频

我试图检查 isPlaying() 并阻止它,但它不起作用!

我想要如果我点击 button1 它会播放 sound1 如果再次点击它会停止它并从头开始再次播放。

我的代码:

package com.hamoosh.playaudio;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class PlayaudioActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b= (Button) findViewById(R.id.button1);
Button b2= (Button) findViewById(R.id.button2);
final TextView t= (TextView) findViewById(R.id.textView1);

final MediaPlayer mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.far);
final MediaPlayer mp1 = MediaPlayer.create(PlayaudioActivity.this, R.raw.beet);

b.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
if (mp1.isPlaying()) {

mp1.stop();
}

mp.start();
}

});

b2.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
if (mp.isPlaying()) {

mp.stop();
}
mp1.start();
}
});
}
}

希望是否有更好的代码可以将多个按钮用作数组或不每次都检查每个按钮和播放器的东西。

最佳答案

您应该只使用一个媒体播放器对象

    public class PlayaudioActivity extends Activity {

private MediaPlayer mp;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.button1);
Button b2 = (Button) findViewById(R.id.button2);
final TextView t = (TextView) findViewById(R.id.textView1);

b.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
stopPlaying();
mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.far);
mp.start();
}

});

b2.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
stopPlaying();
mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.beet);
mp.start();
}
});
}

private void stopPlaying() {
if (mp != null) {
mp.stop();
mp.release();
mp = null;
}
}
}

关于Android MediaPlayer 停止和播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12266502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com