2016-08-23 98 views
0

我想知道是否有办法指定exoplayer只播放hls中高质量的流。我的问题是,即使我有一个良好的网络,播放这种质量也需要很长时间。 因此,如果我能够以这种品质开始比赛而不是较低的比赛,那就太好了。Android Exoplayer只使用HLS播放高质量内容

有什么想法?

问候,

回答

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到:

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视频编解码设备(主要是机顶盒) ,选择较高的变体会导致视频冻结这是谷歌关闭的设备问题。