Что нового

Создать Flash плеер на форме

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Имеется Flash плеер и html файл в котором он прописан, если открыть в браузере, то всё работает, если это зделать на форме, то Flash плеер не отображается, не пойму в чём дело

Код:
#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>

$hObject = ObjCreate("Shell.Explorer.2")
$hForm = GUICreate("", 500, 375)
$ActiveX = GUICtrlCreateObj($hObject, 0, 0, 500, 375)
GUISetState()
$hObject.navigate("about:blank")

$File = FileOpen(@ScriptDir & "\player.html")
$fsoPlayer = FileRead($File)


$hObject.document.Write($fsoPlayer)
$hObject.document.close()

While True
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd


Не забудьте прписать в html файле путь до видео файла
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Viktor1703 [?]
плеер не отображается, не пойму в чём дело
Пример прикрепил.
Естественно нужно поменять имена файлов на ваши, и не забывать грамотно, прописывать пути к файлам.
В примере показан и вариант работы с playlist`ом.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Спасибо большое, чёт я забыл про ShockwaveFlash.ShockwaveFlash :smile:
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
А какие ещё параметры можно передать в swf файл?
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Garrett, а возможно изменить размеры плеера?, посмотрел сайт MRSS, но ни чего не понял.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Viktor1703 [?]
А какие ещё параметры можно передать в swf файл?
Все параметры, которые поддерживает плеер. Смотрите документацию и примеры по JW Player

а возможно изменить размеры плеера?
Конечно, меняёте размер GUICtrlCreateObj.

посмотрел сайт MRSS, но ни чего не понял.
Supported XML Formats
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Viktor1703 [?]
Я пробывал, после нажатия на Play, видео разворачивается во всё окно
Странно, у меня всё нормально воспроизводится.
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $sTitle = 'JW Player'

$GUI1 = GUICreate($sTitle, 633, 454, -1, -1)
$oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash.10")
GUICtrlCreateObj($oFlash, 0, 0, 320, 240)

$oFlash.FlashVars = '&file=http://www.youtube.com/v/zsJpUCWfyPE&image=http://i4.ytimg.com/vi/zsJpUCWfyPE/hqdefault.jpg&controlbar.position=over'
$oFlash.Quality = 1
$oFlash.Movie = @ScriptDir &'\player.swf'

GUISetState(@SW_SHOW, $GUI1)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Я имею в виду изменять размеры видео в ходе выполнения программы

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $sTitle = 'JW Player'

$GUI1 = GUICreate($sTitle, 633, 454, -1, -1)
$oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash.10")
$oActiveX = GUICtrlCreateObj($oFlash, 0, 0, 320, 240)

$oFlash.FlashVars = '&file=http://www.youtube.com/v/zsJpUCWfyPE&image=http://i4.ytimg.com/vi/zsJpUCWfyPE/hqdefault.jpg&controlbar.position=over'
$oFlash.Quality = 1
$oFlash.Movie = @ScriptDir &'\player.swf'

GUISetState(@SW_SHOW, $GUI1)

GUICtrlSetPos($oActiveX, 30, 30, 400, 300)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Вот в описании нашёл что-то подобное:

stretching ( uniform )
Defines how to resize the poster image and video to fit the display. Can be:

none: keep the original dimensions.
exactfit: disproportionally stretch the video/image to exactly fit the display.
uniform: stretch the image/video while maintaining its aspect ratio. There’ll be black borders.
fill: stretch the image/video while maintaining its aspect ratio, completely filling the display.

Вот всё что смог насобирать, минус в том что всё это приминяется только при включении плеера, потом это изменит вроде как нельзя :(

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPIEx.au3>

$hForm = GUICreate('JW Player v2.0', 630, 475, -1, -1, $WS_SIZEBOX)
$oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash")
$ActiveX = GUICtrlCreateObj($oFlash, 0, 0, 630, 450)
$oFlash.FlashVars = '&playlistfile=audio.xml' & _ ; Загружаем плей-лист
                    '&autostart=false' & _        ; Автоматическое воспроизведениет = откл.
					'&dock=true' & _              ; Не знаю
					'&backcolor=#ff0000' & _      ; Цвет панели управления
					'&frontcolor=#ffffff' & _     ; Цвет элементов
					'&lightcolor=#000000' & _     ; Цвет элементов при наведении мыши
					'&screencolor=#000000' & _    ; Цвет фона
					'&repeat=always' & _          ; Зацикливание воспроизведения : none, list, always, single
					'&shuffle=2' & _              ; Выбрать трэк из плэй-листа
					'&smoothing=false' & _        ; Не знаю
					'&stretching=uniform' & _     ; Что-то с отображением изображения
					'&volume=100'                 ; Устанавливаем громкость

;~ $oFlash.FlashVars = '&file=2_unlimited_-_faces.mp3'
$oFlash.Quality = 1
$oFlash.Movie = @ScriptDir &'\player.swf'
GUIRegisterMsg($WM_SIZING, 'WM_SIZING')
GUISetState()

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

Func WM_SIZING($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Local $iPos = _WinAPI_GetPosFromRect(DllStructCreate($tagRECT, $lParam))
            GUICtrlSetPos($ActiveX, 0, 0, $iPos[2], $iPos[3])
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Viktor1703 [?]
Я имею в виду изменять размеры видео в ходе выполнения программы
Я не совсем понимаю, что вам нужно.
1. Если нужно задать размер видео, то это делается с помощью
Код:
$GUI1 = GUICreate($sTitle, 320, 240, -1, -1)
$oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash.10")
$oActiveX = GUICtrlCreateObj($oFlash, 0, 0, 320, 240)

2. Если нужно раскрыть видео Full Screen, то для этого есть значок с права (как на любом flash плеере)
3. Что касаемо stretching. Этот параметр регулирует отображение видео в контейнере и устанавливается изначально.
- none Используется родной размер. Как есть
- exactfit Непропорционально растягивает клип под контейнер
- uniform Растягивает клип под контейнер с соблюдением пропорций, при этом по краям остаётся чёрный бордюр.
- fill - Растягивает клип, сохраняя при этом его пропорции, полностью заполняя контейнер.
 

UnEpicFail

Новичок
Сообщения
24
Репутация
0
2Viktor1703 Доброго времени суток.
Столкнулся с похожей проблемой.
Тоже есть флешка которую нужно произвольно "ресайзить" по ходу работы программы. Нашел ли ты решение как это сдлелать?
 
Верх