gpt4 book ai didi

java - 如何在单击按钮时停止播放声音以启动另一个声音文件?

转载 作者:行者123 更新时间:2023-12-02 11:48:21 25 4
gpt4 key购买 nike

我有两个按钮和两首歌曲。如果我单击第一个按钮,则会播放第一个声音。但是,如果我在第一个声音播放时单击第二个按钮,第二个声音也会开始播放。
如何停止其他声音?

我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final MediaPlayer johnCenaPlayer = MediaPlayer.create(this, R.raw.john_cena);
Button johnCenaButton = (Button) findViewById(R.id.john_cena_button);
johnCenaButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
johnCenaPlayer.start();
}
});

final MediaPlayer haGayPlayer = MediaPlayer.create(this, R.id.ha_gay_button);
Button haGayButton = (Button) findViewById(R.id.ha_gay_button);
haGayButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
haGayPlayer.start();
}
});
}

最佳答案

使用 stop() 方法停止 clickListener 中的其他 MediaPlayer。

public void onClick(View view) {
ha_gay.stop()
john_cena.start();
}
<小时/>

如果您有许多音频文件,请使用单个 MediaPlayer 并动态更改源。

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final MediaPlayer mediaPlayer = new MediaPlayer();

Button john_cena_button = (Button) findViewById(R.id.john_cena_button);
john_cena_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
stopAndPlay(R.raw.john_cena, mediaPlayer);
}
});

Button ha_gay_button = (Button) findViewById(R.id.ha_gay_button);
ha_gay_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
stopAndPlay(R.raw.ha_gay, mediaPlayer);
}
});
}

// This resets the mediaPlayer and starts the given audio
private void stopAndPlay(int rawId, MediaPlayer mediaPlayer) {
mediaPlayer.reset();
AssetFileDescriptor afd = this.getResources().openRawResourceFd(rawId);
try {
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.start();
}

}

关于java - 如何在单击按钮时停止播放声音以启动另一个声音文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48054515/

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