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 codec;
|
||||
|
||||
public boolean supportsTranscoding;
|
||||
|
||||
public int sampleRate;
|
||||
public int bitRate;
|
||||
public int bitDepth;
|
||||
|
|
@ -89,6 +91,8 @@ public class Song implements Parcelable {
|
|||
this.container = source.getContainer();
|
||||
this.bitRate = source.getBitrate() != null ? source.getBitrate() : 0;
|
||||
|
||||
this.supportsTranscoding = source.getSupportsTranscoding();
|
||||
|
||||
if (source.getMediaStreams() != null && source.getMediaStreams().size() != 0) {
|
||||
MediaStream stream = source.getMediaStreams().get(0);
|
||||
|
||||
|
|
|
|||
|
|
@ -147,14 +147,21 @@ public class LocalPlayer implements Playback {
|
|||
List<String> containers = PreferenceUtil.getInstance(context).getDirectPlayCodecs().stream()
|
||||
.map(codec -> codec.container.toLowerCase(Locale.ROOT))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<String> codecs = PreferenceUtil.getInstance(context).getDirectPlayCodecs().stream()
|
||||
.map(codec -> codec.codec.toLowerCase(Locale.ROOT))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
String maxBitrate = PreferenceUtil.getInstance(context).getMaximumBitrate();
|
||||
|
||||
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()
|
||||
.setUri(uri)
|
||||
.setMediaId(song.id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue