Abrindo vídeos e músicas através da TMediaPlayer – Maratona AdvPL e TL++ 498

Nesse vídeo demonstraremos a utilização da classe TMediaPlayer, que serve para abrir o Media Player em uma tela, e assim possibilitando abrir músicas ou vídeos.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe498
Abre o Windows Media Player em uma Dialog
@type Function
@author Atilio
@since 04/04/2023
@see https://tdn.totvs.com/display/tec/TMediaPlayer
@obs 

    O exemplo dessa dialog foi baseado no link acima disponível no TDN

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe498()
    Local aArea         := FWGetArea()
    Local nCorFundo     := RGB(238, 238, 238)
    Local nJanAltura    := 500
    Local nJanLargur    := 800
    Local cJanTitulo    := 'Exemplo TMediaPlayer'
    Local lDimPixels    := .T. 
    Local lCentraliz    := .T. 
    Local nObjLinha     := 0
    Local nObjColun     := 0
    Local nObjLargu     := 0
    Local nObjAltur     := 0
    Local lShowBar      := .F.
    Local lIsMute       := .F.
    Local nVolume       := 70
    Private cFontNome   := 'Tahoma'
    Private oFontPadrao := TFont():New(cFontNome, , -12)
    Private oMedia
    Private oBtnOpen  , bBtnOpen   := {|| oMedia:OpenFile(FWInputBox("Escolha o arquivo", "C:\OBS\"))}
    Private oBtnPlay  , bBtnPlay   := {|| oMedia:Play()}
    Private oBtnPause , bBtnPause  := {|| oMedia:Pause()}
    Private oBtnStop  , bBtnStop   := {|| oMedia:Stop()}
    Private oBtnSetVol, bBtnSetVol := {|| oMedia:SetVolume(Val(FWInputBox("Insira o volume (0 a 100)", cValToChar(oMedia:nVolume))))}
    Private oBtnGetVol, bBtnGetVol := {|| FWAlertInfo("O volume está em " + cValToChar(oMedia:nVolume), "Teste TMediaPlayer")}
    Private oBtnShoBar, bBtnShoBar := {|| lShowBar := !lShowBar, oMedia:SetShowBar(lShowBar)}
    Private oBtnRepeat, bBtnRepeat := {|| oMedia:nPlayCount := (Val(FWInputBox("Defina o número de repetições", cValToChar(oMedia:nPlayCount))))}
    Private oBtnMute  , bBtnMute   := {|| lIsMute := !lIsMute, oMedia:SetMute(lIsMute)}
    
    //Cria a dialog
    oDialogPvt := TDialog():New(0, 0, nJanAltura, nJanLargur, cJanTitulo, , , , , , nCorFundo, , , lDimPixels)

        //Cria o Media Player
        nObjLinha := 3
        nObjColun := 3
        nObjLargu := (nJanLargur/2) - 56
        nObjAltur := (nJanAltura/2) - 3
        oMedia := TMediaPlayer():New(nObjLinha, nObjColun, nObjLargu, nObjAltur, oDialogPvt,"C:\OBS\Vídeos Prontos\intro_free.mp4", nVolume, lShowBar)

        //Cria os botões na direita
        nObjLinha := 3
        nObjColun := (nJanLargur/2) - 50
        nObjLargu := 47
        nObjAltur := 15
        oBtnOpen   := TButton():New(nObjLinha + ((nObjAltur + 3) * 0), nObjColun, "Abrir Arq.",  oDialogPvt, bBtnOpen  , nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        oBtnPlay   := TButton():New(nObjLinha + ((nObjAltur + 3) * 1), nObjColun, "Play",        oDialogPvt, bBtnPlay  , nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        oBtnPause  := TButton():New(nObjLinha + ((nObjAltur + 3) * 2), nObjColun, "Pausar",      oDialogPvt, bBtnPause , nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        oBtnStop   := TButton():New(nObjLinha + ((nObjAltur + 3) * 3), nObjColun, "Parar",       oDialogPvt, bBtnStop  , nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        oBtnSetVol := TButton():New(nObjLinha + ((nObjAltur + 3) * 4), nObjColun, "Def. Volume", oDialogPvt, bBtnSetVol, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        oBtnGetVol := TButton():New(nObjLinha + ((nObjAltur + 3) * 5), nObjColun, "Ver Volume",  oDialogPvt, bBtnGetVol, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        oBtnShoBar := TButton():New(nObjLinha + ((nObjAltur + 3) * 6), nObjColun, "Mostr.Barra", oDialogPvt, bBtnShoBar, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        oBtnRepeat := TButton():New(nObjLinha + ((nObjAltur + 3) * 7), nObjColun, "Repetir",     oDialogPvt, bBtnRepeat, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        oBtnMute   := TButton():New(nObjLinha + ((nObjAltur + 3) * 8), nObjColun, "Mudo",        oDialogPvt, bBtnMute  , nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
        
    
    //Ativa e exibe a janela
    oDialogPvt:Activate(, , , lCentraliz)
    
    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação