diff --git a/README.md b/README.md
index cd30b81f..d9fb0226 100644
--- a/README.md
+++ b/README.md
@@ -21,12 +21,10 @@ Since this was a small project intended mainly for myself, there are some things
* Playlists and favorites will not update automatically when changed
* Sorting also requires a reload to take effect
* Batch actions are not yet functional
-* Some reports of audio playback ending prematurely
## Future Plans
I don't currently have plans to add any large features. If I ever find the time, these are some of the items I would potentially include.
* Offline downloads
-* Transcoding
* Support for other media types
diff --git a/app/src/main/java/com/dkanada/gramophone/util/MusicUtil.java b/app/src/main/java/com/dkanada/gramophone/util/MusicUtil.java
index d463762d..2b9b98ed 100644
--- a/app/src/main/java/com/dkanada/gramophone/util/MusicUtil.java
+++ b/app/src/main/java/com/dkanada/gramophone/util/MusicUtil.java
@@ -38,14 +38,14 @@ public class MusicUtil {
builder.append("?UserId=" + apiClient.getCurrentUserId());
builder.append("&DeviceId=" + apiClient.getDeviceId());
- // web max is 12444445 and 320kbps is 320000
- builder.append("&MaxStreamingBitrate=10000000");
+ // web client maximum is 12444445 and 320kbps is 320000
+ builder.append("&MaxStreamingBitrate=" + PreferenceUtil.getInstance(App.getInstance()).getMaximumBitrate());
builder.append("&Container=flac");
builder.append("&TranscodingContainer=ts");
builder.append("&TranscodingProtocol=hls");
// preferred codec when transcoding
- builder.append("&AudioCodec=aac");
+ builder.append("&AudioCodec=" + PreferenceUtil.getInstance(App.getInstance()).getTranscodeCodec());
builder.append("&api_key=" + apiClient.getAccessToken());
Log.i(MusicUtil.class.getName(), "playing audio: " + builder);
diff --git a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java
index 0f666540..1bfdcafc 100644
--- a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java
+++ b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java
@@ -52,6 +52,8 @@ public final class PreferenceUtil {
public static final String GENERAL_THEME = "general_theme";
public static final String COLORED_SHORTCUTS = "colored_shortcuts";
+ public static final String TRANSCODE_CODEC = "transcode_codec";
+ public static final String MAXIMUM_BITRATE = "maximum_bitrate";
public static final String AUDIO_DUCKING = "audio_ducking";
public static final String REMEMBER_SHUFFLE = "remember_shuffle";
@@ -163,6 +165,14 @@ public final class PreferenceUtil {
editor.apply();
}
+ public final String getTranscodeCodec() {
+ return mPreferences.getString(TRANSCODE_CODEC, "aac");
+ }
+
+ public final String getMaximumBitrate() {
+ return mPreferences.getString(MAXIMUM_BITRATE, "320000");
+ }
+
public final boolean getAudioDucking() {
return mPreferences.getBoolean(AUDIO_DUCKING, true);
}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 74485e5c..bbeca4f9 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -12,4 +12,27 @@
- black
+
+ - @string/codec_aac
+ - @string/codec_mp3
+
+
+
+ - aac
+ - mp3
+
+
+
+ - @string/bitrate_unlimited
+ - @string/bitrate_320kbps
+ - @string/bitrate_256kbps
+ - @string/bitrate_128kbps
+
+
+
+ - 10000000
+ - 320000
+ - 256000
+ - 128000
+
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index 4df8e8ba..10ad2126 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -18,4 +18,12 @@
\?
+ Unlimited
+ 320Kbps
+ 256Kbps
+ 128Kbps
+
+ AAC
+ MP3
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bf36ada6..e2f4b2bb 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -76,6 +76,8 @@
Colored app shortcuts
Show album cover
Blur album cover
+ Transcode codec
+ Maximum bitrate
Classic design
Colored notification
Gapless playback
diff --git a/app/src/main/res/xml/pref_audio.xml b/app/src/main/res/xml/pref_audio.xml
index 3ce9644d..13e6d6fd 100644
--- a/app/src/main/res/xml/pref_audio.xml
+++ b/app/src/main/res/xml/pref_audio.xml
@@ -4,6 +4,26 @@
+
+
+
+