user1796260
user1796260

Reputation: 297

Android Exoplayer play only high quality with HLS

I'd like to know if there is a way to specify to exoplayer to play only high quality of a stream in hls. My problem is that it takes too much time to play this quality even if I have a good network. So if I could start playing in this quality and not in the lower one it would be great.

Any idea?

Regards,

Upvotes: 0

Views: 792

Answers (1)

Satya
Satya

Reputation: 151

Please modify as mentioned to pick high variant.

HlsChunkSource.java

OLD:

 protected int computeDefaultVariantIndex(HlsMasterPlaylist playlist, Variant[] variants,
      BandwidthMeter bandwidthMeter) {
    int defaultVariantIndex = 0;
    int minOriginalVariantIndex = Integer.MAX_VALUE;

    for (int i = 0; i < variants.length; i++) {
      int originalVariantIndex = playlist.variants.indexOf(variants[i]);
      if (originalVariantIndex < minOriginalVariantIndex) {
        minOriginalVariantIndex = originalVariantIndex;
        defaultVariantIndex = i;
      }
    }

    return  defaultVariantIndex;
  }

Chnage to :

 protected int computeDefaultVariantIndex (HlsMasterPlaylist playlist, Variant[] variants,BandwidthMeter bandwidthMeter) {

    int defaultVariantIndex = 0;
    int minOriginalVariantIndex = Integer.MIN_VALUE;

    for (int i = 0; i < variants.length; i++) {
      int originalVariantIndex = playlist.variants.indexOf(variants[i]);
      if (originalVariantIndex > minOriginalVariantIndex) {
        minOriginalVariantIndex = originalVariantIndex;
        defaultVariantIndex = i;
      }
    }
     return  defaultVariantIndex;
}

But if your device using Amlogic video codec(mostly set top boxes) , picking high variant cause video freeze which is Google closed as device issue.

Upvotes: 1

Related Questions