Fix playback if transcoding is disabled on the server
This commit is contained in:
parent
5a2fa0a49d
commit
318f07ebd0
2 changed files with 12 additions and 1 deletions
|
|
@ -42,6 +42,8 @@ public class Song implements Parcelable {
|
||||||
public String container;
|
public String container;
|
||||||
public String codec;
|
public String codec;
|
||||||
|
|
||||||
|
public boolean supportsTranscoding;
|
||||||
|
|
||||||
public int sampleRate;
|
public int sampleRate;
|
||||||
public int bitRate;
|
public int bitRate;
|
||||||
public int bitDepth;
|
public int bitDepth;
|
||||||
|
|
@ -89,6 +91,8 @@ public class Song implements Parcelable {
|
||||||
this.container = source.getContainer();
|
this.container = source.getContainer();
|
||||||
this.bitRate = source.getBitrate() != null ? source.getBitrate() : 0;
|
this.bitRate = source.getBitrate() != null ? source.getBitrate() : 0;
|
||||||
|
|
||||||
|
this.supportsTranscoding = source.getSupportsTranscoding();
|
||||||
|
|
||||||
if (source.getMediaStreams() != null && source.getMediaStreams().size() != 0) {
|
if (source.getMediaStreams() != null && source.getMediaStreams().size() != 0) {
|
||||||
MediaStream stream = source.getMediaStreams().get(0);
|
MediaStream stream = source.getMediaStreams().get(0);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -147,14 +147,21 @@ public class LocalPlayer implements Playback {
|
||||||
List<String> containers = PreferenceUtil.getInstance(context).getDirectPlayCodecs().stream()
|
List<String> containers = PreferenceUtil.getInstance(context).getDirectPlayCodecs().stream()
|
||||||
.map(codec -> codec.container.toLowerCase(Locale.ROOT))
|
.map(codec -> codec.container.toLowerCase(Locale.ROOT))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
List<String> codecs = PreferenceUtil.getInstance(context).getDirectPlayCodecs().stream()
|
List<String> codecs = PreferenceUtil.getInstance(context).getDirectPlayCodecs().stream()
|
||||||
.map(codec -> codec.codec.toLowerCase(Locale.ROOT))
|
.map(codec -> codec.codec.toLowerCase(Locale.ROOT))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
String maxBitrate = PreferenceUtil.getInstance(context).getMaximumBitrate();
|
String maxBitrate = PreferenceUtil.getInstance(context).getMaximumBitrate();
|
||||||
|
|
||||||
MediaItem mediaItem;
|
MediaItem mediaItem;
|
||||||
|
|
||||||
if (uri.toString().contains("file://") || (containers.contains(song.container.toLowerCase(Locale.ROOT)) && codecs.contains(song.codec.toLowerCase(Locale.ROOT)) && song.bitRate <= Integer.parseInt(maxBitrate))) {
|
boolean shouldDirectPlay =
|
||||||
|
containers.contains(song.container.toLowerCase(Locale.ROOT)) &&
|
||||||
|
codecs.contains(song.codec.toLowerCase(Locale.ROOT)) &&
|
||||||
|
song.bitRate <= Integer.parseInt(maxBitrate);
|
||||||
|
|
||||||
|
if (uri.toString().contains("file://") || shouldDirectPlay || !song.supportsTranscoding) {
|
||||||
mediaItem = new MediaItem.Builder()
|
mediaItem = new MediaItem.Builder()
|
||||||
.setUri(uri)
|
.setUri(uri)
|
||||||
.setMediaId(song.id)
|
.setMediaId(song.id)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue