No-op setting volume to current volume.

This commit is contained in:
Oliver Woodman 2015-09-01 14:23:35 +01:00
parent 3c65df92c2
commit 7a0f00ce41

View File

@ -357,7 +357,7 @@ public final class AudioTrack {
} }
audioTrackUtil.reconfigure(audioTrack, isPassthrough()); audioTrackUtil.reconfigure(audioTrack, isPassthrough());
setVolume(volume); setAudioTrackVolume();
return sessionId; return sessionId;
} }
@ -582,23 +582,29 @@ public final class AudioTrack {
/** Sets the playback volume. */ /** Sets the playback volume. */
public void setVolume(float volume) { public void setVolume(float volume) {
this.volume = volume; if (this.volume != volume) {
if (isInitialized()) { this.volume = volume;
if (Util.SDK_INT >= 21) { setAudioTrackVolume();
setVolumeV21(audioTrack, volume); }
} else { }
setVolumeV3(audioTrack, volume);
} private void setAudioTrackVolume() {
if (!isInitialized()) {
// Do nothing.
} else if (Util.SDK_INT >= 21) {
setAudioTrackVolumeV21(audioTrack, volume);
} else {
setAudioTrackVolumeV3(audioTrack, volume);
} }
} }
@TargetApi(21) @TargetApi(21)
private static void setVolumeV21(android.media.AudioTrack audioTrack, float volume) { private static void setAudioTrackVolumeV21(android.media.AudioTrack audioTrack, float volume) {
audioTrack.setVolume(volume); audioTrack.setVolume(volume);
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
private static void setVolumeV3(android.media.AudioTrack audioTrack, float volume) { private static void setAudioTrackVolumeV3(android.media.AudioTrack audioTrack, float volume) {
audioTrack.setStereoVolume(volume, volume); audioTrack.setStereoVolume(volume, volume);
} }