Clip Related Script
来源:互联网 发布:5.1音响推荐 知乎 编辑:程序博客网 时间:2024/06/03 18:30
' ---------------------------------------------------------------------'' ---------------------------------------------------------------------structure SClipInstance oClipChannel as ClipChannel iClipChannelID as Integer bLiveUpdate as Boolean szShmKeyModeChanged as String szShmKeyFrameChanged as String bAutoRun as boolean bLoopMode as Boolean bReverseFields as Boolean iRepeatMode as Integer iModeOnLoadError as Integer dPlaybackSpeed as Double iMode as Integer szClipName as String szClipNameToLoad as String iDuration as Integer iCurrentFrame as Integer iFrameIn as Integer iFrameOut as Integerend structuredim oClip as array[SClipInstance]dim iClip as Integer = 0' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub OnInit() println( "OnInit()" ) println( "channel=" & GetParameterInt( "channel" ) ) dim iNumberOfClipChannels = system.GetNumberOfClipChannel() for i = 0 to iNumberOfClipChannels ClipPlayerInitializeClipChannel( i ) nextiClip = 0end subdim kButtonStop as integer = 0dim kButtonPlay as integer = 1dim kButtonPause as integer = 2dim kButtonContinue as integer = 3dim kButtonFlush as integer = 4dim kButtonLoad as integer = 5' ---------------------------------------------------------------------' ClipInGetClipNameAbsolute Test' ---------------------------------------------------------------------dim kButtonTest1 as integer = 6 ' ---------------------------------------------------------------------' RequestClipStatus Test' ---------------------------------------------------------------------dim kButtonTest2 as integer = 7' ---------------------------------------------------------------------' QueueList Test' ---------------------------------------------------------------------dim kButtonTest3 as integer = 8' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub OnInitParameters() println( "OnInitParameters()" ) dim clip_channel_entries as array[string] clip_channel_entries.push( "Clip Channel 1" ) clip_channel_entries.push( "Clip Channel 2" ) RegisterParameterDropDown("channel","Clip Channel", 0, clip_channel_entries, 20, 2) RegisterFileSelector( "file", "Browse Filename", "D:/clips", "", "*.avi *.dv *.mov") RegisterPushButton( "cmd_load", "Load Clip", kButtonLoad )RegisterPushButton( "cmd_test1", "Test1", kButtonTest1 )RegisterPushButton( "cmd_test2", "Test2", kButtonTest2 )RegisterPushButton( "cmd_test3", "Test3", kButtonTest3 ) RegisterPushButton( "cmd_stop", "Stop", kButtonStop ) RegisterPushButton( "cmd_play", "Play", kButtonPlay ) RegisterPushButton( "cmd_pause", "Pause", kButtonPause ) RegisterPushButton( "cmd_continue", "Continue", kButtonContinue ) RegisterPushButton( "cmd_flush", "Flush", kButtonFlush ) RegisterParameterBool ( "live_update", "Live Update", false ) RegisterParameterString( "status_mode", "Current Mode", "", 20, 20, "?" ) RegisterParameterInt ( "status_duration", "Duration (frames)", 0, 0, 2000000000 ) RegisterParameterBool( "auto_run", "Auto Run", false ) RegisterParameterBool( "loop_mode", "Loop Mode", true ) RegisterParameterBool( "reverse_fields", "Reverse Fields", false ) dim repeat_mode_entries as array[string] repeat_mode_entries.push( "none" ) repeat_mode_entries.push( "field" ) repeat_mode_entries.push( "frame" ) RegisterParameterDropDown("repeat_mode","Repeat Mode", 1, repeat_mode_entries, 20, 3 ) dim mode_on_load_error_entries as array[string] mode_on_load_error_entries.push( "none" ) mode_on_load_error_entries.push( "pause" ) mode_on_load_error_entries.push( "stop" ) mode_on_load_error_entries.push( "flush" ) RegisterParameterDropDown("mode_on_load_error","Mode on Load Error", 0, mode_on_load_error_entries, 20, 4 ) RegisterParameterDouble("speed", "Speed", 1,-2.00,2.00) RegisterParameterInt("currentframe", "Current Frame", 0, 0, 2000000000) RegisterParameterInt("framein", "Frame In", 0, 0, 2000000000) RegisterParameterInt("frameout", "Frame Out", 0, 0, 2000000000)end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub OnParameterChanged( parameterName As String ) println( "OnParameterChanged: " & parameterName ) if parametername.StartsWith( "status_" ) then exit sub if oClip[iClip].iMode <> 2 then println( "OnParameterChanged: " & parameterName ) dim cmd as string if "channel" == parameterName then ClipPlayerChangeClipChannel( GetParameterInt( parameterName )) elseif "file" == parameterName then oClip[iClip].szClipNameToLoad = GetParameterString( parameterName ) elseif "auto_run" == parameterName then ClipPlayerSetAutoRun( GetParameterBool( parameterName )) elseif "loop_mode" == parameterName then ClipPlayerSetLoopMode( GetParameterBool( parameterName )) elseif "reverse_fields" == parameterName then ClipPlayerSetReverseFields( GetParameterBool( parameterName )) elseif "repeat_mode" == parameterName then ClipPlayerSetRepeatMode( GetParameterInt( parameterName )) elseif "mode_on_load_error" == parameterName then ClipPlayerSetModeOnLoadError( GetParameterInt( parameterName )) elseif "speed" == parameterName then ClipPlayerSetPlaybackSpeed( GetParameterDouble( parameterName )) elseif "currentframe" == parameterName then ClipPlayerScrub( GetParameterInt( parameterName )) elseif "framein" == parameterName then ClipPlayerSetFrameIn( GetParameterInt( parameterName )) elseif "frameout" == parameterName then ClipPlayerSetFrameOut( GetParameterInt( parameterName )) elseif "live_update" == parameterName then ClipPlayerSetLiveUpdate( GetParameterBool( parameterName )) end ifend sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub OnExecAction( buttonId As Integer ) println("Pressed button: "&buttonId ) if kButtonLoad == buttonId then ClipPlayerSetClipName( oClip[iClip].szClipNameToLoad ) elseif kButtonStop == buttonId then ClipPlayerStop() elseif kButtonPlay == buttonId then ClipPlayerPlay() elseif kButtonPause == buttonId then ClipPlayerPause() elseif kButtonContinue == buttonId then ClipPlayerContinue() elseif kButtonFlush == buttonId then ClipPlayerFlush() elseif kButtonTest1 == buttonId then Test1() elseif kButtonTest2 == buttonId then Test2() elseif kButtonTest3 == buttonId then Test3() end ifend sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub OnSharedMemoryVariableChanged( map As SharedMemory, mapKey As String ) ' Remove this as soon as shared memory is working. println( "shared memory variable: " & mapKey & " changed" ) 'exit sub if mapKey == oClip[iClip].szShmKeyModeChanged then oClip[iClip].iMode = CInt( map[ mapKey ] ) UpdateAllFromClipPlayer( false ) elseif mapKey == oClip[iClip].szShmKeyFrameChanged then oClip[iClip].iCurrentFrame = CInt( map[ mapKey ] ) ClipPlayerChangedFrame() else println( "shared memory variable: " & mapKey & " changed to:" & map[ mapKey ] ) end ifend sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ModeToString(mode as integer) as string if mode == 0 then ModeToString = "none" elseif mode == 1 then ModeToString = "stopped" elseif mode == 2 then ModeToString = "playing" elseif mode == 3 then ModeToString = "scrubbing" elseif mode == 4 then ModeToString = "ERROR" elseif mode == 5 then ModeToString = "playcont" else ModeToString = IntToString(mode, 1) end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub UpdateAllFromClipPlayer( bDoGuiAlways as Boolean ) if oClip[iClip].oClipChannel.VizId <= 0 then exit sub if ClipPlayerGetAutoRun() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterBool( "auto_run", oClip[iClip].bAutoRun ) end if if ClipPlayerGetLoopMode() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterBool( "loop_mode", oClip[iClip].bLoopMode ) end if if ClipPlayerGetReverseFields() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterBool( "reverse_fields", oClip[iClip].bReverseFields ) end if if ClipPlayerGetRepeatMode() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterInt( "repeat_mode", oClip[iClip].iRepeatMode ) end if if ClipPlayerGetModeOnLoadError() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterInt( "mode_on_load_error", oClip[iClip].iModeOnLoadError ) end if if ClipPlayerGetPlayBackSpeed() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterDouble( "speed", oClip[iClip].dPlayBackSpeed ) end if if ClipPlayerGetFrameIn() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterInt( "framein", oClip[iClip].iFrameIn ) end if if ClipPlayerGetFrameOut() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterInt( "frameout", oClip[iClip].iFrameOut ) end if if ClipPlayerGetClipName() OR bDoGuiAlways then this.scriptPlugininstance.SetParameterString( "file", oClip[iClip].szClipName ) end if this.scriptPlugininstance.SetParameterString( "status_mode", ModeToString( oClip[iClip].iMode )) oClip[iClip].iDuration = oClip[iClip].oClipChannel.Duration this.scriptPlugininstance.SetParameterInt( "status_duration", oClip[iClip].iDuration ) if NOT oClip[iClip].bLiveUpdate then dim iCurrentFrame as Integer = oClip[iClip].oClipChannel.CurrentFrame if iCurrentFrame <> oClip[iClip].iCurrentFrame then oClip[iClip].iCurrentFrame = oClip[iClip].oClipChannel.CurrentFrame this.scriptPlugininstance.SetParameterInt( "currentframe", oClip[iClip].iCurrentFrame ) end if end if SendGuiRefresh()end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerChangedFrame() if oClip[iClip].oClipChannel.VizId <= 0 then exit sub if oClip[iClip].bLiveUpdate then this.scriptPlugininstance.SetParameterInt( "currentframe", oClip[iClip].iCurrentFrame ) SendGuiRefresh() end ifend sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerInitializeClipChannel( iClipChannel as Integer ) dim oClipInst as SClipInstance iClip = iClipChannel oClipInst.oClipChannel = system.GetClipChannel( iClip ) oClipInst.iClipChannelID = oClipInst.oClipChannel.ClipChannelID oClipInst.bLiveUpdate = false println( "[" & iClip & "]iClipChannelID=" & oClipInst.iClipChannelID ) println( "[" & iClip & "]object id:=" & oClipInst.oClipChannel.VizId ) oClip.push( oClipInst ) ClipPlayerGetRegisteredChangedClipModeKey() ClipPlayerCreateChangedClipModeKey() ClipPlayerGetRegisteredChangedClipFrameKey() ClipPlayerCreateChangedClipFrameKey() ClipPlayerGetCurrentMode() ClipPlayerGetCurrentFrame() UpdateAllFromClipPlayer( true )end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerChangeClipChannel( iClipChannel as Integer ) if oClip[iClip].bLiveUpdate then ClipPlayerUnRegisterChanges() end if iClip = iClipChannel ClipPlayerGetCurrentMode() ClipPlayerGetCurrentFrame() UpdateAllFromClipPlayer( true ) if oClip[iClip].bLiveUpdate then ClipPlayerRegisterChanges() end ifend sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerGetRegisteredChangedClipModeKey() if oClip[iClip].oClipChannel.VizId <= 0 then exit sub oClip[iClip].szShmKeyModeChanged = oClip[iClip].oClipChannel.GetRegisterChangedClipMode() println( "[" & iClip & "]GetRegisterChangedClipMode()=" & oClip[iClip].szShmKeyModeChanged )end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerGetRegisteredChangedClipFrameKey() if oClip[iClip].oClipChannel.VizId == 0 then exit sub oClip[iClip].szShmKeyFrameChanged = oClip[iClip].oClipChannel.GetRegisterChangedClipFrame() println( "[" & iClip & "]GetRegisterChangedClipFrame()=" & oClip[iClip].szShmKeyFrameChanged )end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerCreateChangedClipModeKey() if oClip[iClip].szShmKeyModeChanged.length == 0 then oClip[iClip].szShmKeyModeChanged = "com.vizrt.clip" & IntToString( oClip[iClip].iClipChannelID , 1 ) & ".mode" end if dim oShmMap as SharedMemory if Scene.Map.ContainsKey( oClip[iClip].szShmKeyModeChanged ) then oShmMap = Scene.Map elseif System.Map.ContainsKey( oClip[iClip].szShmKeyModeChanged ) then oShmMap = System.Map else oShmMap = Scene.Map oShmMap.CreateKey( oClip[iClip].szShmKeyModeChanged ) end if ' oClip.oClipChannel.RegisterChangedClipMode( oClip[iClip].szShmKeyModeChanged ) oShmMap.RegisterChangedCallback( oClip[iClip].szShmKeyModeChanged )end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerCreateChangedClipFrameKey() if oClip[iClip].szShmKeyFrameChanged.length == 0 then oClip[iClip].szShmKeyFrameChanged = "com.vizrt.clip" & IntToString( oClip[iClip].iClipChannelID , 1 ) & ".frame" end if dim oShmMap as SharedMemory if Scene.Map.ContainsKey( oClip[iClip].szShmKeyFrameChanged ) then oShmMap = Scene.Map elseif System.Map.ContainsKey( oClip[iClip].szShmKeyFrameChanged ) then oShmMap = System.Map else oShmMap = Scene.Map oShmMap.CreateKey( oClip[iClip].szShmKeyFrameChanged ) end if ' oClip[iClip].oClipChannel.RegisterChangedClipFrame( oClip[iClip].szShmKeyFrameChanged ) oShmMap.RegisterChangedCallback( oClip[iClip].szShmKeyFrameChanged )end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetClipName( szClipName as String ) as Boolean' if oClip[iClip].szClipName <> szClipName then oClip[iClip].szClipName = szClipName oClip[iClip].oClipChannel.SetClipName( oClip[iClip].szClipName ) ClipPlayerSetClipName = true println( "[" & iClip & "]SetClipName(" & oClip[iClip].szClipName & ")" )' else' ClipPlayerSetClipName = false' end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetClipName() as Boolean dim szClipName as String = oClip[iClip].oClipChannel.GetClipName() if oClip[iClip].szClipName <> szClipName then oClip[iClip].szClipName = szClipName ClipPlayerGetClipName = true println( "[" & iClip & "]GetClipName=" & oClip[iClip].szClipName ) else ClipPlayerGetClipName = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetAutoRun( bAutoRun as Boolean ) as Booleanif oClip[iClip].bAutoRun <> bAutoRun then oClip[iClip].bAutoRun = bAutoRun oClip[iClip].oClipChannel.AutoRun = oClip[iClip].bAutoRun ClipPlayerSetAutoRun = true println( "[" & iClip & "]SetAutoRun(" & oClip[iClip].bAutoRun & ")" ) else ClipPlayerSetAutoRun = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function Test1( ) as Boolean println( "------------------------------------------------------------" )println( "------------------------------------------------------------" )dim sClipName as StringsClipName = oClip[iClip].oClipChannel.GetClipName()println( sClipName )dim sClipNameAbsolute as StringsClipNameAbsolute = oClip[iClip].oClipChannel.GetClipNameAbsolute( sClipName )println( sClipNameAbsolute )println( "------------------------------------------------------------" )println( "------------------------------------------------------------" )end function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function Test2( ) as Boolean println( "------------------------------------------------------------" )println( "------------------------------------------------------------" )dim sClipName as StringsClipName = oClip[iClip].oClipChannel.GetClipName()println( sClipName )dim sClipNameAbsolute as StringsClipNameAbsolute = oClip[iClip].oClipChannel.GetClipNameAbsolute( sClipName )println( sClipNameAbsolute )println( "------------------------------------------------------------" )println( "------------------------------------------------------------" )end function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function Test3( ) as Boolean println( "------------------------------------------------------------" )println( "------------------------------------------------------------" )dim sClipName as StringsClipName = oClip[iClip].oClipChannel.GetClipName()oClip[iClip].oClipChannel.SetNextCueIsInstant( true )oClip[iClip].oClipChannel.QueueInsert(sClipName, 0, 100, false, 50)oClip[iClip].oClipChannel.SetNextCueIsInstant( true )oClip[iClip].oClipChannel.QueueInsert(sClipName, 0, 200, false, 100)oClip[iClip].oClipChannel.SetNextCueIsInstant( true )oClip[iClip].oClipChannel.QueueInsert(sClipName, 0, 300, false, 150)dim sQueueList as StringsQueueList = oClip[iClip].oClipChannel.QueueList( )println( sQueueList )println( "------------------------------------------------------------" )println( "------------------------------------------------------------" )end function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetAutoRun() as Boolean dim bAutoRun as Boolean = oClip[iClip].oClipChannel.AutoRun if oClip[iClip].bAutoRun <> bAutoRun then oClip[iClip].bAutoRun = bAutoRun ClipPlayerGetAutoRun = true println( "[" & iClip & "]GetAutoRun=" & oClip[iClip].bAutoRun ) else ClipPlayerGetAutoRun = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetLoopMode( bLoopMode as Boolean ) as Boolean if oClip[iClip].bLoopMode <> bLoopMode then oClip[iClip].bLoopMode = bLoopMode oClip[iClip].oClipChannel.LoopMode = oClip[iClip].bLoopMode ClipPlayerSetLoopMode = true println( "[" & iClip & "]SetLoopMode(" & oClip[iClip].bLoopMode & ")" ) else ClipPlayerSetLoopMode = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetLoopMode() as Boolean dim bLoopMode as Boolean = oClip[iClip].oClipChannel.LoopMode if oClip[iClip].bLoopMode <> bLoopMode then oClip[iClip].bLoopMode = bLoopMode ClipPlayerGetLoopMode = true println( "[" & iClip & "]GetLoopMode=" & oClip[iClip].bLoopMode ) else ClipPlayerGetLoopMode = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetReverseFields( bReverseFields as Boolean ) as Boolean if oClip[iClip].bReverseFields <> bReverseFields then oClip[iClip].bReverseFields = bReverseFields oClip[iClip].oClipChannel.ReverseFields = oClip[iClip].bReverseFields ClipPlayerSetReverseFields = true println( "[" & iClip & "]SetReverseFields(" & oClip[iClip].bReverseFields & ")" ) else ClipPlayerSetReverseFields = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetReverseFields() as Boolean dim bReverseFields as Boolean = oClip[iClip].oClipChannel.ReverseFields if oClip[iClip].bReverseFields <> bReverseFields then oClip[iClip].bReverseFields = bReverseFields ClipPlayerGetReverseFields = true println( "[" & iClip & "]GetReverseFields=" & oClip[iClip].bReverseFields ) else ClipPlayerGetReverseFields = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetRepeatMode( iRepeatMode as Integer ) as Boolean if oClip[iClip].iRepeatMode <> iRepeatMode then oClip[iClip].iRepeatMode = iRepeatMode oClip[iClip].oClipChannel.RepeatMode = oClip[iClip].iRepeatMode ClipPlayerSetRepeatMode = true println( "[" & iClip & "]SetRepeatMode(" & oClip[iClip].iRepeatMode & ")" ) else ClipPlayerSetRepeatMode = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetRepeatMode() as Boolean dim iRepeatMode as Integer = oClip[iClip].oClipChannel.RepeatMode if oClip[iClip].iRepeatMode <> iRepeatMode then oClip[iClip].iRepeatMode = iRepeatMode ClipPlayerGetRepeatMode = true println( "[" & iClip & "]GetRepeatMode=" & oClip[iClip].iRepeatMode ) else ClipPlayerGetRepeatMode = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetModeOnLoadError( iModeOnLoadError as Integer ) as Boolean if oClip[iClip].iModeOnLoadError <> iModeOnLoadError then oClip[iClip].iModeOnLoadError = iModeOnLoadError oClip[iClip].oClipChannel.ModeOnLoadError = oClip[iClip].iModeOnLoadError ClipPlayerSetModeOnLoadError = true println( "[" & iClip & "]SetModeOnLoadError(" & oClip[iClip].iModeOnLoadError & ")" ) else ClipPlayerSetModeOnLoadError = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetModeOnLoadError() as Boolean dim iModeOnLoadError as Integer = oClip[iClip].oClipChannel.ModeOnLoadError if oClip[iClip].iModeOnLoadError <> iModeOnLoadError then oClip[iClip].iModeOnLoadError = iModeOnLoadError ClipPlayerGetModeOnLoadError = true println( "[" & iClip & "]GetModeOnLoadError=" & oClip[iClip].iModeOnLoadError ) else ClipPlayerGetModeOnLoadError = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetPlayBackSpeed( dPlaybackSpeed as Double ) as Boolean if oClip[iClip].dPlaybackSpeed <> dPlaybackSpeed then oClip[iClip].dPlaybackSpeed = dPlaybackSpeed oClip[iClip].oClipChannel.PlayBackSpeed = oClip[iClip].dPlaybackSpeed ClipPlayerSetPlayBackSpeed = true println( "[" & iClip & "]SetPlayBackSpeed(" & oClip[iClip].dPlaybackSpeed & ")" ) else ClipPlayerSetPlayBackSpeed = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetPlayBackSpeed() as Boolean dim dPlaybackSpeed as Double = oClip[iClip].oClipChannel.PlayBackSpeed if oClip[iClip].dPlaybackSpeed <> dPlaybackSpeed then oClip[iClip].dPlaybackSpeed = dPlaybackSpeed ClipPlayerGetPlayBackSpeed = true println( "[" & iClip & "]GetPlayBackSpeed=" & oClip[iClip].dPlaybackSpeed ) else ClipPlayerGetPlayBackSpeed = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetFrameIn( iFrameIn as Integer ) as Boolean if oClip[iClip].iFrameIn <> iFrameIn then oClip[iClip].iFrameIn = iFrameIn oClip[iClip].oClipChannel.FrameIn = oClip[iClip].iFrameIn ClipPlayerSetFrameIn = true println( "[" & iClip & "]SetFrameIn(" & oClip[iClip].iFrameIn & ")" ) else ClipPlayerSetFrameIn = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetFrameIn() as Boolean dim iFrameIn as Integer = oClip[iClip].oClipChannel.FrameIn if oClip[iClip].iFrameIn <> iFrameIn then oClip[iClip].iFrameIn = iFrameIn ClipPlayerGetFrameIn = true println( "[" & iClip & "]GetFrameIn=" & oClip[iClip].iFrameIn ) else ClipPlayerGetFrameIn = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerSetFrameOut( iFrameOut as Integer ) as Boolean if oClip[iClip].iFrameOut <> iFrameOut then oClip[iClip].iFrameOut = iFrameOut oClip[iClip].oClipChannel.FrameOut = oClip[iClip].iFrameOut ClipPlayerSetFrameOut = true println( "[" & iClip & "]SetFrameOut(" & oClip[iClip].iFrameOut & ")" ) else ClipPlayerSetFrameOut = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetFrameOut() as Boolean dim iFrameOut as Integer = oClip[iClip].oClipChannel.FrameOut if oClip[iClip].iFrameOut <> iFrameOut then oClip[iClip].iFrameOut = iFrameOut ClipPlayerGetFrameOut = true println( "[" & iClip & "]GetFrameOut=" & oClip[iClip].iFrameOut ) else ClipPlayerGetFrameOut = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetCurrentMode() as Boolean dim iMode as Integer = oClip[iClip].oClipChannel.PlayMode if oClip[iClip].iMode <> iMode then oClip[iClip].iMode = iMode ClipPlayerGetCurrentMode = true println( "[" & iClip & "]GetCurrentMode=" & oClip[iClip].iMode & ")" ) else ClipPlayerGetCurrentMode = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerGetCurrentFrame() as Boolean dim iCurrentFrame as Integer = oClip[iClip].oClipChannel.CurrentFrame if oClip[iClip].iCurrentFrame <> iCurrentFrame then oClip[iClip].iCurrentFrame = iCurrentFrame ClipPlayerGetCurrentFrame = true println( "[" & iClip & "]GetCurrentFrame=" & oClip[iClip].iCurrentFrame & ")" ) else ClipPlayerGetCurrentFrame = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerPlay() oClip[iClip].oClipChannel.Play(0)end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerPause() oClip[iClip].oClipChannel.Pause()end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerContinue() oClip[iClip].oClipChannel.Continue()end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerStop() oClip[iClip].oClipChannel.Stop()end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerFlush() oClip[iClip].oClipChannel.Flush()end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------function ClipPlayerScrub( iScrubFrame as Integer ) as Boolean if oClip[iClip].iMode == 3 AND oClip[iClip].iCurrentFrame <> iScrubFrame then oClip[iClip].iCurrentFrame = iScrubFrame oClip[iClip].oClipChannel.scrub( oClip[iClip].iCurrentFrame ) ClipPlayerScrub = true println( "[" & iClip & "]ClipPlayerScrub" & oClip[iClip].iCurrentFrame & ")" ) else ClipPlayerScrub = false end ifend function' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerSetLiveUpdate( bLiveUpdate as Boolean ) oClip[iClip].bLiveUpdate = bLiveUpdate if oClip[iClip].bLiveUpdate then ClipPlayerRegisterChanges() else ClipPlayerUnRegisterChanges() end ifend sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerRegisterChanges() oClip[iClip].oClipChannel.SetRegisterChangedClipMode ( oClip[iClip].szShmKeyModeChanged ) oClip[iClip].oClipChannel.SetRegisterChangedClipFrame( oClip[iClip].szShmKeyFrameChanged )end sub' ---------------------------------------------------------------------'' ---------------------------------------------------------------------sub ClipPlayerUnRegisterChanges() oClip[iClip].oClipChannel.SetRegisterChangedClipMode ("") oClip[iClip].oClipChannel.SetRegisterChangedClipFrame("")end sub
阅读全文
0 0
- Clip Related Script
- clip
- clip
- code clip
- android clip
- clip属性
- Canvas---clip
- clip 学习
- CLIR CLIP
- clip\_gradient
- clip属性
- background-clip
- clip介绍
- script
- script
- script
- script
- script
- 【CUGBACM15级BC第三场 B】hdu 4908 BestCoder Sequence
- 表加外键的限制
- java乱码问题处理
- prototype和__proto
- Python数据挖掘学习03--pandas模块数据的导入实战
- Clip Related Script
- 本地Navicat for Mysql 连接不上远程阿里云服务器mysql(windows系统)
- Hadoop新手学习指导-入门需知
- jq拖拽事件
- C++中重载、重写、重定义的区别
- 非专业产品经理如何做设计
- openshift/origin学习记录(6)——集群节点管理
- java对redis各种数据类型的基本操作
- 浏览器端缓存机制详解