Android Exoplayer仅使用HLS播放高品质

时间:2016-08-23 12:21:22

标签: android exoplayer

我想知道是否有办法指定exoplayer只在hls中播放高质量的流。我的问题是即使我有一个良好的网络,它也需要太多时间才能发挥这种品质。 因此,如果我能够开始以这种质量而不是在较低的质量下玩,那就太棒了。

有什么想法吗?

此致

1 个答案:

答案 0 :(得分:1)

请按照提及进行修改以选择高变量。

<强> 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;
}

但是,如果您的设备使用Amlogic视频编解码器(主要是机顶盒),那么选择高变量会导致视频冻结,而谷歌已将其视为设备问题。