2017-03-17 101 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+