我的音频没有播放......我已经坚持了6个小时,并且不知道问题是什么。我想在用户点击静音时让音量静音,当用户再次点击静音时取消静音。
我希望能够让用户将应用取消静音到与用户最初相同的音量。他们的原始音量存储在userVolumeOnStart.userVolume
中,我在unMute中使用此值,以设置其音量。
这是静音按钮的监听器:
public void mute(View view) {
mutebutton = (ImageButton) findViewById(R.id.mutebutton);
if ((variableForMute.x % 2) != 0) { //If it's odd UNMUTE
Log.v(TAG, "Use this volume to unmute " +userVolumeOnStart.userVolume +"");
Toast.makeText(Main_Menu.this, "UNMUTED", Toast.LENGTH_SHORT).show();
mAudioManager.setStreamVolume(AudioManager.STREAM_RING, userVolumeOnStart.userVolume, 0);
variableForMute.x++;
} else { //If its even MUTE
userVolumeOnStart.userVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
Log.v(TAG, "Right Before Mute " +userVolumeOnStart.userVolume +"");
mAudioManager.setStreamVolume(AudioManager.STREAM_RING, 0, 0);
Toast.makeText(Main_Menu.this, "MUTED", Toast.LENGTH_SHORT).show();
variableForMute.x++;
}
}
userVolumeOnStart.userVolume是我在单独的类中定义的变量,用于全局使用它。这是音频实际运行的地方。我可以向你保证问题不在这里,但我仍然会提供代码:
cdt = new CountDownTimer(20000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
Log.v(TAG, millisUntilFinished + "left");
millisUntilFinishedRounded = ((500 + millisUntilFinished) / 1000) * 1000;
if (millisUntilFinishedRounded == 10000) { //TEN SECONDS
ten = MediaPlayer.create(TwentySeconds.this, R.raw.tenmoreseconds);
ten.start();
}
if (millisUntilFinishedRounded == 3000) {
three = MediaPlayer.create(TwentySeconds.this, R.raw.threetwoone);
three.start();
}
}
这是一款在应用启动时在后台运行的服务。
在应用程序运行并按下静音按钮后,在我的手机上更改铃声音量后,这是我的日志。它表明userVolumeOnStart.userVolume正在做它应该做的事情:
我现在很绝望,所以我非常感谢任何反馈(消极或积极的!)
非常感谢,
富
顺便说一句,我的问题不是The audio volume is zero?的重复。我已经改变了自那个问题以来的音频流,并在那里找到了问题。在那里,AudioManager.STREAM_MUSIC
出现问题,其中userVolumeOnStart.userVolume
始终为0.现在不是问题,因为userVolumeOnStart.userVolume
成功会根据用户量进行更改。问题现在是因为未知原因媒体播放器无法有效运作。