中文字幕天堂手机版-欧美一区二区色大片在线观看-丰满人妻视频一区二区三区-美女视频黄的免费的91

您的位置:首頁(yè)   >  關(guān)于我們  >  新聞動(dòng)態(tài)

大彩串口屏M型AV輸入坐標(biāo)顯示和視頻任意形狀播放應(yīng)用說(shuō)明

發(fā)布人:大彩科技發(fā)布日期:2021-03-09


演示視頻

一、適用范圍


文檔僅適用于大彩M型系列串口屏產(chǎn)品。




二、開(kāi)發(fā)環(huán)境版本


1.VisualTFT軟件版本:V3.0.0.1137及以上的版本。

版本查看:

a) 打開(kāi)VisualTFT軟件啟動(dòng)頁(yè)面如圖2-1所示,右上角會(huì)顯示的軟件版本號(hào)。

圖2-1軟件版本


b) 打開(kāi)VisualTFT,在軟件右下角可以查看軟件版本圖2-2所示;最新版本可登錄http://gc086.com/進(jìn)行下載。

圖2-2軟件版本


2.串口屏固件版本:V6.3.325.0 及以上的版本。

版本查看:

a) 查看屏幕背面版本號(hào)貼紙;

b) VisualTFT與屏幕聯(lián)機(jī)成功后,右下角顯示的版本號(hào)。





三、使用說(shuō)明


針對(duì)M型系列的視頻播放功能,利用視頻控件播放視頻時(shí),視頻圖層會(huì)一直顯示在最上層,此時(shí)如果我們將文字等其他圖形疊加放在視頻控件上顯示時(shí),視頻圖層會(huì)將其他圖形都覆蓋,導(dǎo)致只能顯示出視頻,而無(wú)法顯示視頻上疊放的其他文字和圖形。

為此,我司針對(duì)有此類(lèi)需求的客戶(hù)開(kāi)發(fā)了對(duì)應(yīng)的M系列視頻底層播放API接口,來(lái)滿(mǎn)足此類(lèi)客戶(hù)的需求。

  • API函數(shù)接口:set_color_key(Min_Color,Max_Color,Match)
  • u 函數(shù)說(shuō)明:

      a) Min_Color:24位RGB顏色范圍的最小值,例如0x00BFBFBF,R-BF/G-BF/B-BF;

      b) Min_Color:24位RGB顏色范圍的最大值,例如0x00C8C8C8,R-C8/G-C8/B-C8;

      c) Match:6位的比較規(guī)則101010(2A);10-R/10-G/10-B,代表顏色范圍在0x00BFBFBF—0x00C8C8C8之間的顏色值經(jīng)過(guò)比較后會(huì)被過(guò)濾。(0x00BFBFBF <= color <= 0x00C8C8C8之間的顏色會(huì)被過(guò)濾,其他顏色會(huì)顯示出來(lái))

function on_init()
    set_color_key(0x00BFBFBF,0x00C8C8C8,0x0000002A)
end


注:set_color_key(Min_Color,Max_Color,Match),此API接口函數(shù)必須要放在on_init()系統(tǒng)初始化函數(shù)中使用,默認(rèn)在初始時(shí)配置的屬性。




四、示例說(shuō)明


4.1 AV輸入坐標(biāo)顯示

4.1.1 工程屬性配置介紹


  • 視頻控件配置:拖動(dòng)選擇視頻控件,用途選擇播放AV輸入。
  • 按鈕配置:


◎ 上:控制十字光標(biāo)顯示坐標(biāo)y減。

◎ 下:控制十字光標(biāo)顯示坐標(biāo)y加。

◎ 左:控制十字光標(biāo)顯示坐標(biāo)x減。

◎ 右:控制十字光標(biāo)顯示坐標(biāo)x加。


4.1.2 LUA腳本邏輯實(shí)現(xiàn)

LUA腳本配置實(shí)現(xiàn)代碼:

--[[ 十字光標(biāo)坐標(biāo)顯示點(diǎn) ]]

local LineH_Y = 263                                                         
--十字顯示光標(biāo)點(diǎn)y坐標(biāo)
local LineV_X = 240                                                         
--十字顯示光標(biāo)點(diǎn)x坐標(biāo)

local TextH_X  = LineV_X + 5                                                
--坐標(biāo)text顯示的坐標(biāo)位置
local TextH_Y  = LineH_Y - 40 

local TextV_X  = LineV_X + 5
local TextV_Y  = LineH_Y - 20
function on_init()                                                          
--初始化
    set_color_key(0x00BFBFBF,0x00C8C8C8,0x0000002A)                         
--設(shè)置顏色過(guò)濾屬性(必須在on_init()中配置)
end

function  on_draw(screen)                                                   
--界面刷新回調(diào)函數(shù),具體使用說(shuō)明參考《LUA腳本API》
    if screen == 1 then
        set_pen_color(0x3666)                                               
--設(shè)置畫(huà)筆顏色   
        draw_line(40,LineH_Y,440,LineH_Y,1)                                 
--畫(huà)十字線(xiàn)    
        draw_line(LineV_X,63,LineV_X,440,1)
        local text_h = "LineH_Y:"..LineH_Y
        local text_v = "LineV_X:"..LineV_X
        draw_text(text_h,TextH_X,TextH_Y,90,20,4,0x3666,4)                  
--畫(huà)坐標(biāo)text顯示
        draw_text(text_v,TextV_X,TextV_Y,90,20,4,0x3666,4)
    end  
end

function on_control_notify(screen,control,value)                            
--觸摸控件回調(diào)函數(shù)
    if screen == 1 then
        if control == 6 then
--上
            if value == 1 then
                LineH_Y = LineH_Y - 1
                if LineH_Y < 63 then
                    LineH_Y = 63
                end
            elseif value == 2 then
                LineH_Y = LineH_Y - 5
                if LineH_Y < 63 then
                    LineH_Y = 63
                end
            end
        elseif control == 7 then                                             
--下
            if value == 1 then
                LineV_X = LineV_X - 1
                if LineV_X < 63 then
                    LineV_X = 63
                end
            elseif value == 2 then
                LineV_X = LineV_X - 5
                if LineV_X < 63 then
                    LineV_X = 63
                end
            end
        elseif control == 8 then                                             
--左
            if value == 1 then
                LineH_Y = LineH_Y + 1
                if LineH_Y > 440 then
                    LineH_Y = 463
                end
            elseif value == 2 then
                LineH_Y = LineH_Y + 5
                if LineH_Y > 440 then
                    LineH_Y = 463
                end
            end
        elseif control == 9 then                                             
--右
            if value == 1 then
                LineV_X = LineV_X + 1
                if LineV_X > 440 then
                    LineV_X = 440
                end
            elseif value == 2 then
                LineV_X = LineV_X + 5
                if LineV_X > 440 then
                    LineV_X = 440
                end
            end
        end
        follow_pos(LineV_X,LineH_Y)                                          
--text顯示坐標(biāo)傳入
        redraw()
    end
end

function on_press(state,x,y)                                   
--觸摸屏點(diǎn)擊回調(diào)函數(shù)                                      
    if get_current_screen() == 1 then
        if state == 1 or state == 2 then
            if x >= 40 and x <= 440 then
                if y >= 63 and y <= 463 then
                    follow_pos(x,y)
                    LineV_X = x
                    LineH_Y = y
                    redraw()
                end
            end
        end 
    end
end

function follow_pos(p_x,p_y)                     
--text坐標(biāo)顯示
    print("p_x = "..p_x)
    print("p_y = "..p_y)
    if p_x < 240 and p_y < 263 then
        TextV_X = p_x + 5
        TextH_X = p_x + 5
        TextV_Y = p_y + 5
        TextH_Y = p_y + 25
    elseif p_x < 240 and p_y > 263 then
        TextV_X = p_x + 5
        TextH_X = p_x + 5
        TextV_Y = p_y - 40
        TextH_Y = p_y - 20
    elseif p_x >= 240 and p_y <= 263 then
        TextV_X = p_x - 85
        TextH_X = p_x - 85
        TextV_Y = p_y + 5
        TextH_Y = p_y + 25
    elseif p_x > 240 and p_y > 263 then
        TextV_X = p_x - 85
        TextH_X = p_x - 85
        TextV_Y = p_y - 40
        TextH_Y = p_y - 20
    end
end

▲下滑查看







4.2 視頻播放任意形狀

4.2.1 視頻空間屬性配置


  • 視頻控件配置拖動(dòng)選擇視頻控件,用途選擇為播放視頻。
  • 底色或UI配置:由于此處使用的和上節(jié)AV輸入為同一工程,此處也將視頻的底色或UI配置為和AV輸入一樣。


注:set_color_key(Min_color,Max_color,Match)API接口函數(shù)只能在on_onit()初始化中進(jìn)行配置,且整個(gè)工程只能配置一次。

用戶(hù)可根據(jù)自己需求實(shí)現(xiàn)不同形狀的視頻播放窗口,利用上述API接口設(shè)置視頻控件的顏色比較過(guò)濾來(lái)達(dá)到不同形狀的視頻顯示窗口。
例如Demo UI中利用灰色作為底色畫(huà)出的該形狀的圖形,通過(guò)set_color_key設(shè)置顏色過(guò)濾以達(dá)到的顯示該特定形狀的視頻窗口。
注:此處的視頻控件范圍應(yīng)大于需要顯示的該特定形狀的范圍。