2017-03-17 104 views
0

我目前遇到了一個問題,在請求播放視頻節點時我的頭文件被剝離。服務器要求這些標題能夠播放內容。Roku SDK 2.0視頻節點頭正在被剝離

device=CreateObject("roDeviceInfo") 
hvideo = CreateObject("roHttpAgent") 
hvideoheaders = { 
"Device": device.GetDeviceUniqueId(), 
"DeviceProf": device.GetModelDisplayName()+"("+device.GetModel()+";"+device.GetVersion()+";Roku;roku)", 
"Version": "C4.9.9_S0", 
"x-roku-reserved-dev-id": "", 
} 
hvideo.SetHeaders(hvideoheaders) 

'set videoContent Parameters 

videoContent = createObject("RoSGNode", "ContentNode") 
videoContent.url = streamUrl 
videoContent.Title = m.top.item.Title 
videoContent.StreamFormat = "hls" 
videoContent.SubtitleConfig = subtitle_config 
videoContent.HttpSendClientCertificates = true 


'Set Video 
m.video = m.top.findNode("musicvideos") 
m.video.SetConnectionTimeout(30) 
'm.video.notificationInterval = 30 
m.video.observeField("state", "stateChanged") 
m.video.observeField("streamInfo", "streamInfoChanged") 
m.video.observeField("streamingSegment", "streamingSegmentChanged") 
m.video.content = videoContent 
m.video.setHttpAgent(hvideo) 
m.video.control = "play" 

當使用不同的HTTP代理時,唯一遇到的頭是x-roku-reserved-dev-id。

如果我使用頭部的視頻節點內容元數據,除了x-roku-reserved-dev-id之外的所有頭部都存在,這會導致Web服務器訪問規則失敗。這是我已經嘗試設置這些:

headers = [] 
headers.push("x-roku-reserved-dev-id:") 
headers.push("Device:" + device.GetDeviceUniqueId()) 
headers.push("DeviceProf:" + device.GetModelDisplayName()+"("+device.GetModel()+";"+device.GetVersion()+";Roku;roku)") 
headers.push("Version:C4.9.9_S0") 

videoContent.HttpHeaders = headers 

我已經嘗試設置只是不帶X-Roku公司保留-DEV-ID的內容節點和HTTPAgent與X Roku公司保留-DEV-ID然而它是相同的結果...

有什麼想法?

+0

建議關閉,因爲它是一個固件問題,不再與未來的Roku開發者相關 –

回答

0

你應該添加頁眉到roUrlTransfer對象:

request = CreateObject("roUrlTransfer") 
request.SetRequest("POST") 
request.AddHeader(headerName1, headerValue1) 
request.AddHeader(headerName2, headerValue2) 
request.AddHeader(headerName3, headerValue3) 
+0

謝謝。這實際上最終成爲Roku的固件問題。它已被固定在v7.7 b 4061+固件中 – hogie

0

這實際上結束了一個固件問題與Roku公司。 ROKU已經發布了固件固件v7.7 b 4061+