Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
salman23
Level 7

imagecanvas problem in splashscreen

Hi,
I have a splash video to be played after the channel loads.But when the loading is over ,a black screen appears for a while and then it starts playing splash video.Same is the case when using splash image also.How can i remove that black screen , so that after the channel loading , i can directly see the video?


Sub Main()
ShowSplash()
End Sub

Function ShowSplash() As integer
port = CreateObject("roMessagePort")
canvas = CreateObject("roImageCanvas")
player = CreateObject("roVideoPlayer")
canvas.SetMessagePort(port)
player.SetMessagePort(port)
canvas.SetLayer(0, { color: "#00000000", CompositionMode: "Source" })
player.SetPositionNotificationPeriod(1)
player.SetContentList([{
streamFormat: "mp4"
stream: { url: "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" }
}])
player.SetDestinationRect(canvas.GetCanvasRect())
canvas.Show()
player.Play()
while true
msg = Wait(0, port)
'print type(msg)
if msg.isStreamStarted()
print player.GetPlaybackDuration()
print msg.GetIndex()
else if msg.isFullResult()
'showRegOptions()
player.Stop()
doRegistration()
else if msg.isScreenClosed() then
return -1
end if
end while
return 0
End Function
0 Kudos
2 Replies
Roku Employee
Roku Employee

Re: imagecanvas problem in splashscreen

First, display the splash screen image on a layer of your image canvas. Then listen for msg.IsStatusMessage() If msg.GetMessage()="stream started" then clear the layer to transparent.

- Joel
0 Kudos
salman23
Level 7

Re: imagecanvas problem in splashscreen

"RokuJoel" wrote:
First, display the splash screen image on a layer of your image canvas. Then listen for msg.IsStatusMessage() If msg.GetMessage()="stream started" then clear the layer to transparent.

- Joel


Thanks for your quick reply @RokuJoel.But i have two doubts remaining.It would be great ,if you have considered this too.
1.Isn't it enough to clear the layer to transparent in msg.IsStreamstarted() message itself?

2.How can we make the layer transparent.Is it by using ClearLayer() or SetLayer().Do i need to use screen.Show() after that to update the screen?
0 Kudos