我有一個託管服務器上的HLS M3U8播放列表:Android的HLS播放:傳遞URL參數,如Mediaplayer.setDataSource()頭不能正常工作
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-ALLOW-CACHE:YES
#EXT-X-KEY:METHOD=AES-128,URI="https://myserver/playlist/336385.smil/crypt.key?e=6889c9ad1087852"
#EXT-X-VERSION:2
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10,
http://myserver/playlist/336385.smil/segment1_3_av.ts?e=6889c9ad1087852b
#EXTINF:10,
http://myserver/playlist/336385.smil/segment2_3_av.ts?e=6889c9ad1087852b
#EXTINF:10,
http://myserver/playlist/336385.smil/segment3_3_av.ts?e=6889c9ad1087852b
#EXTINF:10,
http://myserver/playlist/336385.smil/segment4_3_av.ts?e=6889c9ad1087852b
#EXTINF:10,
http://myserver/playlist/336385.smil/segment5_3_av.ts?e=6889c9ad1087852b
#EXTINF:10,
http://myserver/playlist/336385.smil/segment6_3_av.ts?e=6889c9ad1087852b
#EXT-X-ENDLIST
但也有檢索需要額外的URL參數播放列表,即調用將是這樣的:
http://myserver/playlist/336385.smil/segment1_3_av.ts?e=6889c9ad1087852b¶m1=value1¶m2=value2
設置標頭,在setDataSource (Context context, Uri uri, Map headers)鍵值對不工作,至少我想它的方式。下面是我如何創建一個從原始URL參數標題:
String paramString =playlistUrl.substring(playlistUrl.indexOf("?") + 1);
String paramsSplit[] = paramString.split("&");
HashMap<String, String> headers = new HashMap<String, String>();
for(int i= 0;i<paramsSplit.length;i++)
{
String key = paramsSplit[i].substring(0, playlistUrl.indexOf("="));
String value = paramsSplit[i].substring(playlistUrl.indexOf("=")+1, playlistUrl.length());
headers.put(key, value);//e.g headers.put("param1", "value1");
}
因此我結束了我在它的參數(即地圖「<‘PARAM,價值’>」)一個地圖,但添加這些報頭不起作用。
,如果我去通過播放M3U8本身並修訂與結束自己多餘的參數每一個URL調用,所以播放列表如下:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-ALLOW-CACHE:YES
#EXT-X-KEY:METHOD=AES-128,URI="https://myserver/playlist/336385.smil/crypt.key?e=6889c9ad1087852b¶m1=value1¶m2=value2"
#EXT-X-VERSION:2
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10,
http://myserver/playlist/336385.smil/segment1_3_av.ts?e=6889c9ad1087852b¶m1=value1¶m2=value2
#EXTINF:10,
http://myserver/playlist/336385.smil/segment2_3_av.ts?e=6889c9ad1087852b¶m1=value1¶m2=value2
#EXTINF:10,
http://myserver/playlist/336385.smil/segment3_3_av.ts?e=6889c9ad1087852b¶m1=value1¶m2=value2
#EXTINF:10,
http://myserver/playlist/336385.smil/segment4_3_av.ts?e=6889c9ad1087852b¶m1=value1¶m2=value2
#EXTINF:10,
http://myserver/playlist/336385.smil/segment5_3_av.ts?e=6889c9ad1087852b¶m1=value1¶m2=value2
#EXTINF:10,
http://myserver/playlist/336385.smil/segment6_3_av.ts?e=6889c9ad1087852b¶m1=value1¶m2=value2
#EXT-X-ENDLIST
播放列表中正常工作,併發揮沒有問題!顯然,手動修改m3u8並不理想,有沒有一種方法可以自動爲url調用設置這些參數?