Belini (Adm) 233 Report post Posted December 1 Estou tentando incorporar um player no meu projeto mas todos que testei em Slave mode até agora não deram certo então me sugeriram incorporar libmpv diretamente no código para ter aceso as funções porém nem sei por onde começar isto, alguém sabe como fazer e pode me dar as dicas de como fazer? libmpv https://github.com/mpv-player/mpv-examples/tree/master/libmpv#methods-of-embedding-the-video-window Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted December 1 O link do GitHub é do seu código, da API ou dos dois? Share this post Link to post Share on other sites
Belini (Adm) 233 Report post Posted December 1 É o link da biblioteca que me passaram da biblioteca e não sei como fazer para incluir esta biblioteca usando Autoit. Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted December 1 Tendi. Vou dar uma olhada pra ver se consigo te ajudar No caso da incorporação do vídeo no código, no seu projeto tem que ser essa ou se incorporar um vídeo de outra maneira serve? Share this post Link to post Share on other sites
Belini (Adm) 233 Report post Posted December 1 Poderia ser outra biblioteca sim menos a do Mplayer pois usando ele no modo slave tive problemas com alguns vídeos no windows xp, usando a winmm.dll também não resolve pois estou tentando incluir um player externo no modo slave ou uma biblioteca justamente para não usar mais as funções da winmm.dll e nem player embutido com funções de objeto. Obs: A biblioteca do vlc talvez fosse ate melhor que esta do mpv pois o player vlc atualmente tem muito mais funcoes que ele e atualizacoes constantes. Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted December 1 Tendi. O código abaixo usa o ActiveX do WMPlayer.OCX.7 Acho que é esse mesmo que você está citando mas se quiser testar mesmo assim... https://1drv.ms/u/s!AnsPM67Cyv4Xj9olB5qKxLoHOqDjWA?e=WecY2l Essa API eu nunca vi. Vou dar uma pesquisada em outras linguagens e tentar traduzir pro Autoit Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted December 1 (edited) Peguei esse aqui do fórum americano Não está com as configurações ajustadas mas vale um teste. Se chegar perto do que você está precisando a gente pode explorar as opções Baixa a versão 32Bits desse link: https://mpv.srsfckn.biz/ Extraia o arquivo baixado, crie e execute o código abaixo na mesma pasta #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Dim $sStream = "http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_60fps_normal.mp4" Dim Const $hWnd_Main = GUICreate("MPV Test", 640, 360, -1, -1) GUISetState(@SW_SHOW) Dim $iPID = Run(@ScriptDir & '\mpv.exe --wid="' & $hWnd_Main & '" "' & $sStream & '"') While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Edited December 1 by Rodrigo Chaves Neto Share this post Link to post Share on other sites
Belini (Adm) 233 Report post Posted December 1 Este eu já havia visto e testado mas este script simplemente imbute a janela do Mpv na fui criada em autoit mas não tem como enviar comandos pra ele pois o modo slave do mpv foi desativando há um bom tempo atras, pra conseguir usar o mvp tem é que conseguir adicionar a biblioteca dele no script mesmo, a libmpv que falei no início do tópico e preciso de dicas pois não sei nada de como adicionar biblioteca no programa. Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted December 1 Entendi. Sem problemas Encontrei exemplos na linguagem lua. Vou tentar traduzir em autoit Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted December 3 Encontrei o script Autoit que integra scripts Lua Encontrei o script Lua que integra o libmpv. Mas não consegui utilizar. Alguns parametros no player (mpv.exe) eu consegui fazer funcionar mas a maioria não. Se quiser eu te passo o material que eu encontrei. Baixei os arquivos do repositorio do GitHub que você passou e encontrei na pagina do help da biblioteca libmpv de como utilizar scripts Lua na biblioteca Share this post Link to post Share on other sites
Pedro Pinheiro 47 Report post Posted December 4 (edited) Olha, incorporaram o windows media player direto na janela sem usar o internet explorer. Ficou show Edited December 4 by Pedro Pinheiro Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted December 4 10 minutes ago, Pedro Pinheiro said: Olha, incorporaram o windows media player direto na janela sem usar o internet explorer. Ficou show Vc se refere ao código que eu postei? Share this post Link to post Share on other sites
Pedro Pinheiro 47 Report post Posted December 4 3 minutes ago, Rodrigo Chaves Neto said: Vc se refere ao código que eu postei? Sim sim Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted December 4 Just now, Pedro Pinheiro said: Sim sim Legal. Obrigado Eh possível incorporar muita coisa Vou postar um exemplo de como incorporar o word na Gui do autoit Share this post Link to post Share on other sites
Pedro Pinheiro 47 Report post Posted December 4 (edited) 7 minutes ago, Rodrigo Chaves Neto said: Legal. Obrigado Eh possível incorporar muita coisa Vou postar um exemplo de como incorporar o word na Gui do autoit ah, o word acho que tem uma udf no autoit. A UDF que usava windows media player, incorporava o internet explorer na janela e por lá chamava o windows media player, mas esse modo aí a dependência é só windows media player e os plugins Edited December 4 by Pedro Pinheiro Share this post Link to post Share on other sites
Belini (Adm) 233 Report post Posted December 5 @Pedro Pinheiro da forma que vc fez não usa funções de objeto? Dá prá usar em modo slave? A janela fica imbutida sem os controles do média player? As teclas de atalho ficam desabilitadas e só recebe comandos do script? Pode postar um exemplo de como fez? Share this post Link to post Share on other sites
Belini (Adm) 233 Report post Posted Tuesday at 12:03 PM On 01/12/2019 at 5:43 PM, Rodrigo Chaves Neto said: Tendi. O código abaixo usa o ActiveX do WMPlayer.OCX.7 Acho que é esse mesmo que você está citando mas se quiser testar mesmo assim... https://1drv.ms/u/s!AnsPM67Cyv4Xj9olB5qKxLoHOqDjWA?e=WecY2l Olá Rodrigo baixei o seu código prá testar mas aqui deu dois erros "D:\UDF_VideoPlayer.au3"(23,29) : warning: $hWnd_Player: possibly used before declaration. Dim $WMPlayer = $hWnd_Player "D:\UDF_VideoPlayer.au3" (28) : ==> Variable cannot be accessed in this manner.: $WMPlayer() $WMPlayer^ ERROR Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted Tuesday at 12:29 PM 21 minutes ago, Belini said: Olá Rodrigo baixei o seu código prá testar mas aqui deu dois erros "D:\UDF_VideoPlayer.au3"(23,29) : warning: $hWnd_Player: possibly used before declaration. Dim $WMPlayer = $hWnd_Player "D:\UDF_VideoPlayer.au3" (28) : ==> Variable cannot be accessed in this manner.: $WMPlayer() $WMPlayer^ ERROR Deve ser a versão do Autoit Para funcionar em versões mais antigas você pode apagar a linha 23: Dim $WMPlayer = hwnd_Player E a linha 28: $WMPlayer() Em lugar dessas linhas apagadas você pode fazer a chamada direto na função: hWnd_Player() #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPIDiag.au3> #include <WinAPIMisc.au3> ;Control Video File Dim $f_Video ;Create Player Object Dim $oWMPlayer = ObjCreate("WMPlayer.OCX.7") ;Define Player Size Dim $_Width = 640, $_Height = 360 ;Control Video Player Dim $WMPlayer = hWnd_Player ################## Excluir ;Extract Demo Video _Extract_Video(True) ;Start Player Video $WMPlayer() ################### Excluir Func hWnd_Player() $hWnd_Video = GUICreate("", $_Width, $_Height, -1, -1, $WS_POPUPWINDOW) $objActiveX = GUICtrlCreateObj($oWMPlayer, 0, 0, $_Width, $_Height) $oWMPlayerEvt = ObjEvent($oWMPlayer, "MediaPlayer_") Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted Tuesday at 12:40 PM Meu teclado não tem funções de atalho para controle do player. Então não consigo testar se os controles serão desabilitados. Mas vc pode controlar o player pelo objeto $oWMPlayer Eu coloquei algumas propriedades With $oWMPlayer ; Object tag pool .fullScreen = False .windowlessVideo = True .stretchToFit = True .settings.playCount = 99999 .URL = $f_Video .enableContextMenu = False .enabled = False .Controls.currentPosition = 0 ; Move to location in movie .Controls.Play ;/ Pause and Stop .uiMode = "none" ; none / mini full .settings.autostart = True .settings.mute = False .settings.volume = 0 ; 0 - 100 .settings.Balance = 0 ; -100 a 100 EndWith Vc pode enviar instruções alterando os valores do objeto, por exemplo Se vc quiser aumentar o volume do video vc faz executando do seguinte modo $oWMPlayer.settings.volume = 20 ;Pra aumentar 20% o volume Se vc quiser colocar o volume só no lado direito $oWMPlayer.settings.balance = 100 Deve haver mais propriedades no objeto que desativam teclas de atalho, caso elas estejam ativadas Mas tem que olhar as propriedades do objeto usando o OLEView.exe Pra encontrar esse executável vc abre o help do Autoit e seleciona a aba search Digita OLEView.exe Vai aparecer uma referencia: COM Reference Ao abrir o arquivo de ajuda vá até o subtópico OLE/COM Object Viewer Lá tem o endereço pra baixar o arquivo e instruções de como encontrar as propriedades do objeto Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted Tuesday at 12:40 PM (edited) A maioria dos objetos listados nesse aplicativo podem ser manipulados pelo Autoit Edited Tuesday at 12:44 PM by Rodrigo Chaves Neto Share this post Link to post Share on other sites
Belini (Adm) 233 Report post Posted Tuesday at 01:49 PM Agora abriu aqui precisava mudar Dim $WMPlayer = $hWnd_Player para Dim $WMPlayer = $oWMPlayer e retirar o $ da chamada da função $WMPlayer() depois vou testar aqui e surgindo alguma dúvida vou te perguntando, já prá adiantar vc sabe qual comando posso alterar o aspect ratio da tela usando este exemplo seu? Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted Tuesday at 02:05 PM 13 minutes ago, Belini said: Agora abriu aqui precisava mudar Dim $WMPlayer = $hWnd_Player para Dim $WMPlayer = $oWMPlayer e retirar o $ da chamada da função $WMPlayer() depois vou testar aqui e surgindo alguma dúvida vou te perguntando, já prá adiantar vc sabe qual comando posso alterar o aspect ratio da tela usando este exemplo seu? Legal, conseguiu resolver de outra forma! Sobre o aspect ratio eu coloquei uma propriedade só .stretchToFit = True Essa propriedade preenche todo o espaço definido pela sintaxe abaixo $objActiveX = GUICtrlCreateObj($oWMPlayer, 0, 0, $_Width, $_Height) Share this post Link to post Share on other sites
Belini (Adm) 233 Report post Posted Tuesday at 02:09 PM É que alguns vídeos ficam com tarjas pretas em cima e em baixo ou dos lados aí preciso mudar o aspect ratio tipo 4:3, 5:4, 16:9, 16:10... Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted Tuesday at 02:10 PM Just now, Belini said: É que alguns vídeos ficam com tarjas pretas em cima e em baixo ou dos lados aí preciso mudar o aspect ratio alguns tipo 4:3, 5:4, 16:9, 16:10... Tendi. Vc pode postar se for possivel o tamanho da janela e um video de exemplo? Posso tentar encontrar os ajustes corretos Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted Tuesday at 02:10 PM Just now, Belini said: É que alguns vídeos ficam com tarjas pretas em cima e em baixo ou dos lados aí preciso mudar o aspect ratio alguns tipo 4:3, 5:4, 16:9, 16:10... Tendi. Vc pode postar se for possivel o tamanho da janela e um video de exemplo? Posso tentar encontrar os ajustes corretos Share this post Link to post Share on other sites