找回密码
 加入
搜索
查看: 1427|回复: 1

送上WMP相关源代码,获得更多WMP控制参数

[复制链接]
发表于 2008-11-14 12:28:56 | 显示全部楼层 |阅读模式
送上WMP.au3的源代码,可获得更多的Windows Media player 的控制参数,
如下:段1
另送上用网页调用WMP的各项参数(很全)
如下:段2

问题提出:调用wmp(原尺寸过小的视频)在au3方式下不能50%、100%、200%、全屏显示
而引用网页调用的话,可设置此参数
<param name="DisplaySize" value="2" />
<!--视频1-50%, 0-100%, 2-200%,3-全屏 其它的值作0处理,小数则采用四舍五入然后按前的处理-->

高手们可以帮忙改写WMP.au3使之功能完善些吗??

--------段1------------------------------------------------------------------------------------------------------------------------


#include-once
Local $oWMP = 0

#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 = 100, $height = 100)
$oWMP = ObjCreate("WMPlayer.OCX")
If $oWMP = 0 Then Return 0
$oWMP.settings.autoStart = "False"
If $show = 1 Then
    Global $a = GUICtrlCreateObj($oWMP, $left, $top, $width, $height)
        $b = GUICtrlCreateContextMenu($a)
        $c = GUICtrlCreateMenuitem("About", $a)
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(1)
    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 _wmpsetvalue( $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 = "mini"
        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
                Case $setting = "cm"
                        $object.enableContextMenu = "false"
    EndSelect
EndFunc

Func WMGetState()
        If $oWMP <> 0 Then
                $sStates = "Undefined,Stopped,Paused,Playing,ScanForward,ScanReverse,Buffering,"
                $sStates &= "Waiting,MediaEnded,Transitioning,Ready,Reconnecting"
                $aStates = StringSplit($sStates,",")
                $iState = $oWMP.playState() + 1
                return $aStates[$iState]
        EndIf
        If $oWMP = 0 Then SetError(1)
EndFunc




-------------段2---------------------------------------------------------------------------------------------------------------------------------------------------------------------
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="480" height="385">
<param name="AudioStream" value="-1" />
<param name="AutoSize" value="-1" />
<!--是否自动调整播放大小-->
<param name="AutoStart" value="-1" />
<!--是否自动播放-->
<param name="AnimationAtStart" value="-1" />
<param name="AllowScan" value="-1" />
<param name="AllowChangeDisplaySize" value="-1" />
<param name="AutoRewind" value="0" />
<param name="Balance" value="0" />
<!--左右声道平衡,最左-9640,最右9640-->
<param name="BaseURL" value />
<param name="BufferingTime" value="15" />
<!--缓冲时间-->
<param name="CaptioningID" value />
<param name="ClickToPlay" value="-1" />
<param name="CursorType" value="0" />
<param name="CurrentPosition" value="0" />
<!--当前播放进度 -1 表示不变,0表示开头 单位是秒,比如10表示从第10秒处开始播放,值必须是-1.0或大于等于0-->
<param name="CurrentMarker" value="0" />
<param name="DefaultFrame" value />
<param name="DisplayBackColor" value="0" />
<param name="DisplayForeColor" value="16777215" />
<param name="DisplayMode" value="2" />
<param name="DisplaySize" value="2" />
<!--视频1-50%, 0-100%, 2-200%,3-全屏 其它的值作0处理,小数则采用四舍五入然后按前的处理-->
<param name="Enabled" value="-1" />
<param name="EnableContextMenu" value="0" />
<!-是否用右键弹出菜单控制-->
<param name="EnablePositionControls" value="-1" />
<param name="EnableFullScreenControls" value="-1" />
<param name="EnableTracker" value="0" />
<!--是否允许拉动播放进度条到任意地方播放-->
<param name="Filename" value="MTV.asx" valuetype="ref" />
<!--播放文件地址 -->
<param name="InvokeURLs" value="-1" />
<param name="Language" value="-1" />
<param name="Mute" value="0" />
<!--是否静音-->
<param name="PlayCount" value="10" />
<!--重复播放次数,0为始终重复-->
<param name="PreviewMode" value="-1" />
<param name="Rate" value="1" />
<!--播放速度1.0-2.0倍的速度播放-->
<param name="SAMILang" value />
<param name="SAMIStyle" value />
<param name="SAMIFileName" value />
<!--选择同时播放(伴音)的歌曲-->
<param name="SelectionStart" value="-1" />
<param name="SelectionEnd" value="-1" />
<param name="SendOpenStateChangeEvents" value="-1" />
<param name="SendWarningEvents" value="-1" />
<param name="SendErrorEvents" value="-1" />
<param name="SendKeyboardEvents" value="0" />
<param name="SendMouseClickEvents" value="0" />
<param name="SendMouseMoveEvents" value="0" />
<param name="SendPlayStateChangeEvents" value="-1" />
<param name="ShowCaptioning" value="0" />
<!--是否显示字幕,为一块黑色,下面会有一大块黑色,一般不显示-->
<param name="ShowControls" value="-1" />
<!--是否显示控制,比如播放,停止,暂停-->
<param name="ShowAudioControls" value="-1" />
<!--是否显示音量控制-->
<param name="ShowDisplay" value="0" />
<!--显示节目信息,比如版权等-->
<param name="ShowGotoBar" value="0" />
<!--一条框,在下面,有往下箭头-->
<param name="ShowPositionControls" value="-1" />
<!--是否显示往前往后及列表,如果显示一般也都是灰色不可控制-->
<param name="ShowStatusBar" value="-1" />
<!--当前播放信息,显示是否正在播放,及总播放时间和当前播放到的时间-->
<param name="ShowTracker" value="-1" />
<!--是否显示当前播放跟踪条,即当前的播放进度条-->
<param name="TransparentAtStart" value="-1" />
<param name="VideoBorderWidth" value="0" />
<!--显示部的宽部,如果小于视频宽,则最小为视频宽,或者加大到指定值,并自动加大高度.此改变只改变四周的黑框大小,不改变视频大小-->
<param name="VideoBorderColor" value="0" />
<!--显示黑色框的颜色, 为RGB值,比如ffff00为黄色-->
<param name="VideoBorder3D" value="0" />
<param name="Volume" value="0" />
<!--音量大小,负值表示是当前音量的减值,值自动会取绝对值,最大为0,最小为-9640,最大0-->
<param name="WindowlessVideo" value="0" />
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
</object> <br />
<script language=vbscript>for each obj in document.MediaPlayer1.all
messagebox(obj)
next
</script>

[ 本帖最后由 dfsdaxlj 于 2008-12-1 14:13 编辑 ]
发表于 2010-2-28 11:04:06 | 显示全部楼层
正在找这方面的资料,但楼主发的资料,我编译好像出错了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-7-3 08:50 , Processed in 0.072356 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表