Add skip silence checkbox to audio control

Add new Checkbox to dialog. Enable only if ExoPlayer is selected.

Selection directly changes player behavior
This commit is contained in:
falko 2019-01-05 21:27:40 +01:00
parent 1d8509fd8a
commit 73c8635354
6 changed files with 34 additions and 1 deletions

View File

@ -534,6 +534,17 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
stereoToMono.setText(stereoToMono.getText() + " [" + sonicOnly + "]");
}
final CheckBox skipSilence = (CheckBox) dialog.findViewById(R.id.skipSilence);
skipSilence.setChecked(UserPreferences.isSkipSilence());
if (!UserPreferences.useExoplayer()) {
skipSilence.setEnabled(false);
skipSilence.setText(skipSilence.getText() + "[ ExoPlayer only ]");
}
skipSilence.setOnCheckedChangeListener((buttonView, isChecked) -> {
UserPreferences.setSkipSilence(isChecked);
controller.setSkipSilence(isChecked);
});
barLeftVolume.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

View File

@ -71,6 +71,13 @@
</RelativeLayout>
<CheckBox
android:id="@+id/skipSilence"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/pref_skip_silence_title" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -509,6 +509,12 @@ public class UserPreferences {
.apply();
}
public static void setSkipSilence(boolean skipSilence) {
prefs.edit()
.putBoolean(PREF_PLAYBACK_SKIP_SILENCE, skipSilence)
.apply();
}
public static void setPlaybackSpeedArray(String[] speeds) {
JSONArray jsonArray = new JSONArray();
for (String speed : speeds) {

View File

@ -1632,6 +1632,10 @@ public class PlaybackService extends MediaBrowserServiceCompat {
mediaPlayer.setPlaybackParams(speed, UserPreferences.isSkipSilence());
}
public void skipSilence(boolean skipSilence) {
mediaPlayer.setPlaybackParams(getCurrentPlaybackSpeed(), skipSilence);
}
public void setVolume(float leftVolume, float rightVolume) {
mediaPlayer.setVolume(leftVolume, rightVolume);
}

View File

@ -706,6 +706,11 @@ public abstract class PlaybackController {
playbackService.setSpeed(speed);
}
}
public void setSkipSilence(boolean skipSilence) {
if (playbackService != null) {
playbackService.skipSilence(skipSilence);
}
}
public void setVolume(float leftVolume, float rightVolume) {
if (playbackService != null) {

View File

@ -466,7 +466,7 @@
<string name="media_player_builtin">Built-in Android player</string>
<string name="media_player_sonic" translatable="false">Sonic Media Player</string>
<string name="media_player_exoplayer" translatable="false">ExoPlayer</string>
<string name="pref_skip_silence_title" >Skip Silence in Audio</string>
<string name="pref_skip_silence_title">Skip Silence in Audio</string>
<string name="pref_videoBehavior_title">Upon exiting video</string>
<string name="pref_videoBehavior_sum">Behavior when leaving video playback</string>
<string name="stop_playback">Stop playback</string>