С URL-адресом HTTPS изображение не загружается с сеткой плаката - PullRequest
1 голос
/ 16 июня 2020

Я создал один компонент RSG и сохранил контент, используя метаданные контента, как показано ниже. Внутри поля content-meta-data находится hdgridposterurl, я поставил URL HTTP и HTTPS и проверенную сторону Roku, работает она или нет. Http работает. Но Https не работает. Я также проверил оба URL-адреса на другой платформе. Оба URL-адреса хорошо работают для других платформ, таких как Android, IOS, Google Chrome, Amazon Fire Stick.

Я также добавляю SetCertificatesFile ("common: / root / www_mysite_com.csr"). Это не работает. Это та же проблема со всеми компонентами RSG и простым узлом Poster. Кто-нибудь знает какое-нибудь решение для этого?

Пример PosterGrid:

<component name = "PosterGridExample" extends = "Scene" initialFocus = "examplePosterGrid" > 
  <script type = "text/brightscript" >
    <![CDATA[
    sub init()
      m.top.backgroundURI = "pkg:/images/rsgde_bg_hd.jpg"
      m.top.setFocus(true)
      m.postergrid = m.top.findNode("examplePosterGrid")
      m.postergrid.translation = [ 130, 160 ]
      m.readPosterGridTask = createObject("roSGNode", "ContentReader")
      m.readPosterGridTask.contenturi = "http://www.sdktestinglab.com/Tutorial/content/rendergridps.xml"
      m.readPosterGridTask.observeField("content", "showpostergrid")
      m.readPosterGridTask.control = "RUN"
    end sub
    sub showpostergrid()
      m.postergrid.content = m.readPosterGridTask.content
    end sub
    ]]>
  </script>
  <children>
    <PosterGrid
      id = "examplePosterGrid"
      basePosterSize = "[ 512, 288 ]"
      caption1NumLines = "1"
      numColumns = "2"
      numRows = "2"
      itemSpacing = "[ 20, 20 ]" />
  </children> 
</component>

Content-Meta-Data:

<Content >
  <item hdgridposterurl = "https://simultv.com:1400//nodeapi/Channels/file-1591699694712.jpg"
    shortdescriptionline1 = "Rectangle Node"
    x = "0" y = "0" />
  ...
</Content>

Отредактировано:

Я добавил сертификат, как показано ниже, и отобразил loadStatus и FailedBitmapUri. здесь loadStatus = "сбой" отображается. Но изображение FailedBitmapUri не отображается. В гугле Chrome успешно загружается Но, Року не загружается. Думаю, Roku не расшифровывает изображение. Но я не знаю почему? Я все еще не нашел решения для этого.

sub init()
m.poster = m.top.findNode("testPoster")
m.poster.SetCertificatesFile("pkg:/certificates/cacert.crt")
m.poster.InitClientCertificates()
m.poster.uri="https://simultv.com:1400//nodeapi/Channels/file-1591699694712.jpg"
m.poster.failedBitmapUri="pkg:/images/splash_hd.jpg"
m.poster.observeField("loadStatus","OnLoadStatusChanged")
m.top.SetFocus(true)
End sub

function OnLoadStatusChanged()
?"m.poster.loadStatus : "m.poster.loadStatus
end function

Я пробовал несколько нижеуказанных URL-адресов с тем же изображением. Результаты Как показано ниже в Roku. Я тестировал эти URL-адреса на всех устройствах Cooper. результат одинаков для всех.

'm.poster.uri = "https://simultv.com/ace.jpg" Работает 'm.poster.uri = "https://simultv.com: 1400 / nodeapi / iphone / 101.jpg"' Это не работает 'm.poster.uri = "https://simultv.com: 1400 / nodeapi / Channels / file-1592530892572.jpg" 'Не работает

1 Ответ

0 голосов
/ 06 июля 2020

У вас открыта отладка (например, lnet на порт 8085 на IP-адресе вашей локальной сети Roku), что он вам показывает? В зависимости от типа вашего компонента вы можете использовать SetCertificatesFile обычно на m.top:

m.top.SetCertificatesFile("common:/certs/ca-bundle.crt")  
m.top.InitClientCertificates()

, но не на самом узле плаката (ага?) Предполагая, что testPoster действительно poster, тогда я полагаете, что SetCertificatesFile не является допустимым методом на плакате (или Group или Node)

Кроме того, похоже, вы используете неправильный сертификат? (cacert.crt) Попробуйте связку: ca-bundle.crt

...