Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как скриптом проиграть видеофайл. (http://forum.oszone.net/showthread.php?t=192293)

Vagac 25-11-2010 22:47 1551680

Как скриптом проиграть видеофайл.
 
Как скриптом проиграть видеофайл чтобы он открылся на полный экран.

Yashied 26-11-2010 00:09 1551715

Здесь

Vagac 26-11-2010 00:25 1551727

Спасибо за ответ а где взять <DSEngine.au3>

kaster 26-11-2010 00:30 1551731

Vagac, там же под сообщением прикреплен файл. Правда я не уверен о доступности или видимости вообще без регистрации

Creat0R 26-11-2010 00:36 1551736

Цитата:

Цитата kaster
не уверен о доступности или видимости вообще без регистрации »

Без регистраций видно вот что:

Цитата:

Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Vagac 26-11-2010 00:38 1551739

Да спасибо там используется UDF.dll как ее вставить в скомпилированный скрипт

kaster 26-11-2010 00:42 1551741

Vagac, компилированный на то и компилированный, что с ним уже ничего не поделаешь. если есть исходники вставляй в него библиотеки по схожему принципу, как указано в сообщении выше из соседнего форума

Vagac 26-11-2010 00:49 1551746

Да нет я сам компиллю у меня скрипт отдельно UDF отдельно мне надо вставить UDF в скрипт чтобы не таскать с собой 2 файла вот например иконку я знаю как вставить вот так "#AutoIt3Wrapper_icon=Cons.ico"
а как вставить UDF не знаю.

yurfed 26-11-2010 00:58 1551751

Creat0R, Странно, но у меня виден код.
Код:

#Include <DSEngine.au3>

$sFile = FileOpenDialog('Select Video File', @ScriptDir, 'Video Files (*.avi;*.mpg;*.wmv;*.mov;*.3gp;*.asf;*.mp4;*.flv;*.rv)')
If Not $sFile Then
    Exit
EndIf

$hForm = GUICreate('MyGUI')
Engine_Startup(@ScriptDir & '\DSEngine_UDF.dll')
Engine_LoadFile($sFile, $hForm)
$aSize = Engine_GetVideoSize()
WinMove($hForm, '', (@DesktopWidth - $aSize[0]) / 2, (@DesktopHeight - $aSize[1]) / 2, $aSize[0], $aSize[1])
Engine_SetRects(0, 0, 0, 0, 0, 0, $aSize[0], $aSize[1])
GUISetState()

Engine_StartPlayback()

Do
Until GUIGetMsg() = -3

Engine_Shutdown()


kaster 26-11-2010 01:02 1551755

yurfed, речь про файл. в коде он подключен как библиотека

Vagac, та что au3 библиотека, как мне известна при компиляции сама внедрится в скрипт, а вот dll все же придется за собой таскать. хотя, может и можно как то добавить в конец исполняемого файла или еще как. тут тебе только мастер может ответить Yashied ;)

Vagac 26-11-2010 01:09 1551767

Engine_Startup(@ScriptDir & '\DSEngine_UDF.dll') ну правилино из папки скрипта экзешник и сам скрипт работает потому что DSEngine_UDF.dll находится в этой же папке а мне надо чтобы DSEngine_UDF.dll был вшит в скрипт я и спрашиваю можно ли как нибуд. перед компиляцией вставить с помощью AutoIt3Wrapper DSEngine_UDF.dll в скрипт потом скомпилить в один exe чтобы не таскать с собой DSEngine_UDF.dll

прошу прощения не заметил сообщения тогда другой вопрос если нельзя UDF встроить в exe есть ли какой нибудь способ проигрывать видео используя стандартные библиотеки Windows.

madmasles 26-11-2010 01:56 1551781

Vagac,
Цитата:

потом скомпилить в один exe чтобы не таскать с собой DSEngine_UDF.dll
А в чем проблема:
Код:

;...
FileInstall('DSEngine_UDF.dll', @TempDir & '\DSEngine_UDF.dll')
;...
;в конце
FileDelete(@TempDir & '\DSEngine_UDF.dll')


Yashied 26-11-2010 02:52 1551791

Vagac, использовать DLL непосредственно из памяти, не распаковывая на диск, нельзя (по крайней мере не в AutoIt). Самый правильный вариант - это тот, который предложил madmasles. Воспользуйся им или таскай с собой DLL.

Vagac 26-11-2010 10:03 1551901

#Include <DSEngine.au3>
FileInstall('DSEngine_UDF.dll', @TempDir & '\DSEngine_UDF.dll')
$sFile = FileOpenDialog('Select Video File', @ScriptDir, 'Video Files (*.avi;*.mpg;*.wmv;*.mov;*.3gp;*.asf;*.mp4;*.flv;*.rv)')
If Not $sFile Then
Exit
EndIf

$hForm = GUICreate('MyGUI')

Engine_Startup(@ScriptDir & '\DSEngine_UDF.dll')
Engine_LoadFile($sFile, $hForm)
$aSize = Engine_GetVideoSize()
WinMove($hForm, '', (@DesktopWidth - $aSize[0])/2 , (@DesktopHeight - $aSize[1])/2, $aSize[0], $aSize[1])
Engine_SetRects(0, 0, 0, 0, 0, 0, $aSize[0], $aSize[1])
GUISetState()

Engine_StartPlayback()

Do
Until GUIGetMsg() = -3

Engine_Shutdown()
FileDelete(@TempDir & '\DSEngine_UDF.dll')

После компиляции все равно не работает вываливается с ошибкой

madmasles 26-11-2010 11:11 1551943

Vagac,
Поменяйте
Код:

;...
Engine_Startup(@ScriptDir & '\DSEngine_UDF.dll')
; на
Engine_Startup(@TempDir & '\DSEngine_UDF.dll')
;...

Для кода: Au3ToPost - Инструмент для расскраски AutoIt-кода.

Vagac 26-11-2010 20:14 1552268

Ладно всем спасибо за ответы и внимание к моим вопросам один из немногих форумов где так быстро и корректно отвечают.
А со скриптом я понял что нормально с помощью AutoIt этого не реализовать это мое субъективное мнение.
Еще раз спасибо.

Iska 26-11-2010 22:35 1552389

Цитата:

Цитата Vagac
я понял что нормально с помощью AutoIt этого не реализовать »
Цитата:

Цитата Vagac
Как скриптом проиграть видеофайл чтобы он открылся на полный экран. »


Command Line Options Available for Windows Media Player
Код:

Mplayer2.exe /play /fullscreen /close <Path to video file>

gregaz 27-11-2010 10:20 1552584

Цитата:

Цитата Vagac
Как скриптом проиграть видеофайл чтобы он открылся на полный экран. »

Цитата:

Цитата Vagac
А со скриптом я понял что нормально с помощью AutoIt этого не реализовать »

Приблизительно так можно :

Код:

#include <GUIConstantsEx.au3>

$hForm = GUICreate('MyGUI',400,400)

$oWmp = _wmpcreate(1,5,5,390,240)
$oWmp.uiMode = "none"

$sFile = FileOpenDialog('Select Video File',"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", 'Video Files (*.*)')
If Not $sFile Then
        Exit
EndIf
_wmploadmedia( $oWmp, $sFile )

While  $oWmp.controls.currentPosition = 0
        Sleep(100)
WEnd
$oWmp.fullscreen = "true"

$btExit = GUICtrlCreateButton("Exit", 340, -1,'', '')

GUISetState()

While 1
        Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE,$btExit
                        Exit
        EndSwitch
WEnd

Func _wmpcreate($show, $left, $top, $width = 100, $height = 100)
        $oWMP = ObjCreate("WMPlayer.OCX")
        If $oWMP = 0 Then Return 0
        $oWMP.settings.autoStart = "False"
        If $show = 1 Then
                GUICtrlCreateObj($oWMP, $left, $top, $width, $height)
        EndIf
        Return $oWMP
EndFunc

Func _wmploadmedia( $object, $URL, $autostart = 1 )
    $object.URL = $URL
    While Not $object.controls.isAvailable("play")
        Sleep(1)
    WEnd
    If $autostart = 1 Then $object.controls.play()
EndFunc

Источник

Vagac 27-11-2010 14:06 1552705

Спасибо gregaz это то что нужно!!!


Время: 21:55.

Время: 21:55.
© OSzone.net 2001-