Спасибо, вроде просто, а весь вечер ходил и изучал...по ссылках. Нашел несложный вариант, все то что нужно, но вот проблема с размерами окна wmp. При запуске оно одних размеров, при воспроизведении видеопотока(станция 1 и 2) - уже другие размеры (и причем свой размер у каждой станции), а при воспроизведении аудиопотока(станция3) - опять уменьшается. Помогите, как сделать, чтоб окно всегда было одного размера (и при запуске, и при разном воспроизведении, где то 350x350, ну не меньше). Вот код:
Код:
#include <GUIConstants.au3>
HotKeySet('{F9}', '_volMinus') ;уменьшить звук
HotKeySet('{F10}', '_volPlus') ;увеличить звук
Global $nocontrols=false
$hGui = GUICreate("Test", 518, 439, 192, 125)
$ControlPanel_ShowHide_But=GUICtrlCreateButton("Hide",5,370,50,25)
$StopPlay_But=GUICtrlCreateButton("Stop",55,370,50,25)
$FullScreen_But=GUICtrlCreateButton("fullscreen",105,370,50,25)
$Stantion1_But=GUICtrlCreateButton("Station1",155,370,50,25)
$Stantion2_But=GUICtrlCreateButton("Station2",205,370,50,25)
$Stantion3_But=GUICtrlCreateButton("Station3",255,370,50,25)
$wmp = _wmpcreate(1, 5, 5, 360, 360);creates object
_wmploadmedia($wmp, "http://www.vefire.ru/channel/oneplusone/asx/")
_wmpvalue( $wmp, "Controls" );show controls
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
;
Case $ControlPanel_ShowHide_But ;скрыть показать панель контроля
If $nocontrols==False Then
$nocontrols=True
_wmpvalue( $wmp, "nocontrols")
GUICtrlSetData($ControlPanel_ShowHide_But,"Show")
Else
$nocontrols=False
_wmpvalue( $wmp, "controls")
GUICtrlSetData($ControlPanel_ShowHide_But,"Hide")
EndIf
;
Case $StopPlay_But ;остановить, продолжить воспроизведение
If $wmp.controls.isAvailable("play") Then
$wmp.controls.play()
GUICtrlSetData($StopPlay_But,"Stop")
Else
$wmp.controls.stop()
GUICtrlSetData($StopPlay_But,"Play")
EndIf
;
Case $FullScreen_But ;во весь экран
_wmpvalue( $wmp, "fullscreen")
;
Case $Stantion1_But ;1 тестовая станция
_wmploadmedia($wmp, "http://www.vefire.ru/channel/oneplusone/asx/")
;
Case $Stantion2_But ;2 тестовая станция
_wmploadmedia($wmp, "mms://89.187.1.165/gamma?WMContentBitrate=300000")
;
Case $Stantion3_But ;3 тестовая станция
_wmploadmedia($wmp,"mms://online.svitle.org/svitle")
EndSwitch
Sleep(10)
WEnd
;
;
Func quit()
Exit
EndFunc
;
;
Func _volMinus() ;уменьшить громкость на плеере
Local $vol
$vol=$wmp.settings.volume
if $vol <= 0 then Return
$vol = $vol - 10
if $vol < 0 then $vol = 0
$wmp.settings.Volume = $vol
EndFunc ;_volMinus
;
;
Func _volPlus() ;увеличить громкость на плеере
Local $vol
$vol=$wmp.settings.volume
if $vol >100 then Return
$vol = $vol + 10
if $vol >100 then $vol = 100
$wmp.settings.Volume = $vol
EndFunc ;_volPlus
;
;
#cs
_wmpcreate($show, $left, $top, $width = 100, $height = 100)
$show: 1 = shows controls
2 = hides controls
Return: The object for the control
#ce
Func _wmpcreate($show, $left, $top, $width = 360, $height = 360)
$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
;
;
#cs
_wmploadmedia( $object, $URL, $autostart = 1 )
$object: Object returned from the _wmpcreate()
$URL: Path or URL of the media
$autostart: 1 = yes
0 = no
Return: None
#ce
Func _wmploadmedia( $object, $URL, $autostart = 1 )
$object.URL = $URL
While Not $object.controls.isAvailable("play")
Sleep(10)
WEnd
If $autostart = 1 Then $object.controls.play()
EndFunc
;
;
#cs
_wmpsetvalue( $object, $setting, $para=1 )
$object: Object returned from the _wmpcreate()
$setting: "play"
"stop"
"pause"
"invisible" (Hides all)
"control" (Shows controls)
"nocontrol" (Hides controls)
"fullscreen"
"step" (frames to step before freezing)
"fastforward"
"fastreverse"
"volume" (0 To 100)
"rate" (-10 To 10)
"playcount"
Return: None
#ce
Func _wmpvalue( $object, $setting, $para=1 )
Select
Case $setting = "play"
If $object.controls.isAvailable("play") Then $object.controls.play()
Case $setting = "stop"
If $object.controls.isAvailable("stop") Then $object.controls.stop()
Case $setting = "pause"
If $object.controls.isAvailable("pause") Then $object.controls.pause()
Case $setting = "invisible"
$object.uiMode = "invisible"
Case $setting = "controls"
$object.uiMode = "full"
Case $setting = "nocontrols"
$object.uiMode = "none"
Case $setting = "fullscreen"
$object.fullscreen = "True"
Case $setting = "step"
If $object.controls.isAvailable("step") Then $object.controls.step($para)
Case $setting = "fastForward"
If $object.controls.isAvailable("fastForward") Then $object.controls.fastForward()
Case $setting = "fastReverse"
If $object.controls.isAvailable("fastReverse") Then $object.controls.fastReverse()
Case $setting = "volume"
$object.settings.volume = $para
Case $setting = "rate"
$object.settings.rate = $para
Case $setting = "playcount"
$object.settings.playCount = $para
Case $setting = "setposition"
$object.controls.currentPosition = $para
Case $setting = "getposition"
Return $object.controls.currentPosition
Case $setting = "getpositionstring";Returns HH:MM:SS
Return $object.controls.currentPositionString
Case $setting = "getduration"
Return $object.currentMedia.duration
EndSelect
EndFunc
Мне кажеться, что причина в некоректной работе параметра
uiMode (у меня wmp10 установлен)
P.S. Набросал код только для вопроса, так что прошу не обращать внимание на несиметричность...