GlyEngine 0.2.6
Create games and apps with lua
Loading...
Searching...
No Matches
Streamming

@stream

https://fakestream.gamely.com.br
https://videostream.gamely.com.br

Precondition
require http json media.video
Author
Rodrigo Dornelles
Version
1.0.0
Brief

play videos online!

Source Code
local function init(self, std)
self.menu = 1
self.msg = 'loading...'
self.time = std.milis
self.wmax = 1
std.http.get('http://t.gamely.com.br/medias.json'):json()
:error(function()
self.msg = std.http.error
end)
:failed(function()
self.msg = tostring(std.http.status)
end)
:success(function()
self.list = std.http.body
self.msg = nil
end)
:run()
end
local function loop(self, std)
if not self.list or #self.list == 0 then return end
if self.time + 300 < std.milis and std.key.press.any then
self.menu = std.math.clamp2(self.menu + std.key.axis.y, 1, #self.list)
self.time = std.milis
if std.key.press.a then
std.media.video():src(self.list[self.menu]):position(0, 0, 1280, 720):play()
end
if std.key.press.b then
std.media.video():resume()
end
if std.key.press.c then
std.media.video():pause()
end
if std.key.press.d then
std.media.video():stop()
end
if std.key.press.left then
std.media.video():position(0, 0, 640, 320)
end
if std.key.press.right then
std.media.video():position(0, 0, self.width, self.height)
end
end
end
local function draw(self, std)
if self.msg then
std.text.put(1, 1, self.msg)
end
if self.list and #self.list > 0 then
local font_size = 12
local w, h = self.width/6, self.height/4
local w2, h2, index = self.width - self.wmax, h*2, 1
local h3 = (#self.list + 1) * font_size
local color = std.media.video():get_error() and std.color.red or std.color.blue
std.draw.color(std.media.video():in_mutex() and std.color.green or color)
std.draw.rect(0, w2 - 16, h, self.wmax + 32, h3 + font_size)
std.draw.color(std.color.skyblue)
std.text.font_size(font_size)
std.draw.rect(0, w2 - 16, (self.menu * font_size) + h, self.wmax + 16, font_size)
std.draw.color(std.color.white)
std.draw.rect(1, w2 - 16, h, self.wmax + 32, h3 + font_size)
while index <= #self.list do
self.wmax = std.math.max(self.wmax, std.text.print_ex(self.width - 8, (index * font_size) + h, self.list[index], -1))
index = index + 1
end
end
end
local function exit(self, std)
end
local P = {
meta={
title='Streamming',
description='play videos online!',
author='Rodrigo Dornelles',
version='1.0.0'
},
config={
require='http json media.video'
},
init=init,
loop=loop,
}
}
return P
local function exit()
local function title(window_name)
local function index(array, func, reverse)
std.array.index
local function json()
json response
local function success(handler_func)
local function body(content)
local function failed(handler_func)
local function draw(src, pos_x, pos_y)
local function error(message)
local function stop()
local function pause()
local function src(url)
local function play()
local function position(pos_x, pos_y)
local function resume()
local function h(element, attribute, childs)
JSX element factory.
local function callbacks(handler)