2016-08-23 99 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視頻編解碼設備(主要是機頂盒) ,選擇較高的變體會導致視頻凍結這是谷歌關閉的設備問題。