如何使音池静音?
Posted
技术标签:
【中文标题】如何使音池静音?【英文标题】:How to mute a soundpool? 【发布时间】:2018-02-26 09:45:50 【问题描述】:我想允许用户使用按钮将应用程序静音,有人建议我“在按下静音按钮时将布尔值粘贴到您设置为 false 的 MediaPlayerPool 上。然后在您的 playSound 方法中,如果值为 false,则不执行任何操作。''但我不知道该怎么做。有人可以发布一个示例代码吗? 池代码:
public class MediaPlayerPool
private static MediaPlayerPool instance = null;
private Context context;
private List<MediaPlayer> pool;
public static MediaPlayerPool getInstance(Context context)
if(instance == null)
instance = new MediaPlayerPool(context);
return instance;
private MediaPlayerPool(Context context)
this.context = context;
pool = new ArrayList<>();
public void playSound(int soundId)
MediaPlayer mediaPlayer = MediaPlayer.create(context, soundId);
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
@Override
public void onCompletion(MediaPlayer mediaPlayer)
mediaPlayer.release();
pool.remove(mediaPlayer);
mediaPlayer = null;
);
pool.add(mediaPlayer);
mediaPlayer.start();
【问题讨论】:
【参考方案1】:给你的MediaPlayerPool
类添加一个变量,我们称之为mute
public boolean mute = false;
有一个静音/取消静音按钮及其onClick
方法(将切换):
MediaPlayerPool.getInstance().mute = !MediaPlayerPool.getInstance().mute
你的playSound
方法变成了
public void playSound(int soundId)
if(!mute)
// stick your current code here
【讨论】:
以上是关于如何使音池静音?的主要内容,如果未能解决你的问题,请参考以下文章