在WPF中获取冻结帧的时间

时间:2015-06-16 13:50:53

标签: c# .net wpf

我希望获得一段视频的冻结时间,该视频由WPF中的暂停按钮暂停。我想存储该冻结帧的时间并在将来使用它。如何获得特定帧的完美时间?我应该使用什么类型的变量来存储那个时间?

2 个答案:

答案 0 :(得分:0)

我相信你是在Clock的{​​{1}}属性。

请参阅documentation

您可以访问MediaElement媒体资源。请参阅more documentation

答案 1 :(得分:0)

我使用Position属性,它返回TimeSpan:

XAML

#! /usr/java/jdk1.8.0_25/bin/jjs
host="remotehost"
port=7091
serviceURL = "service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi"
url = new javax.management.remote.JMXServiceURL(serviceURL);
stringArrayType = Java.type("java.lang.String[]")
credentials = new stringArrayType(2)
credentials[0]="user"
credentials[1]="password1"
HashMapType = Java.type("java.util.HashMap")
environment = new HashMapType()
environment.put("jmx.remote.credentials",credentials)
connector = javax.management.remote.JMXConnectorFactory.connect(url,environment)
mbeanServerConnection=connector.getMBeanServerConnection()
ObjectNameType = Java.type("javax.management.ObjectName")

objectName = new ObjectNameType('Catalina:type=Connector,port=8009,address="tomcat.example.org"')
print(mbeanServerConnection.getAttribute(objectName, "proxyName"))

objectName = new ObjectNameType('java.lang:type=Memory')
#print(mbeanServerConnection.getAttribute(objectName, "HeapMemoryUsage"))
print('HeapMemoryUsage, used = ' + mbeanServerConnection.getAttribute(objectName, "HeapMemoryUsage").get('used'))

代码隐藏

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>

    <MediaElement x:Name="MyMediaElement"
                    Grid.Row="0"
                    LoadedBehavior="Manual"
                    Source="SomeDrive:\SomeFolder\SomeMediaFile.mp4" />
    <StackPanel Grid.Row="1"
                HorizontalAlignment="Center"
                VerticalAlignment="Center"
                Orientation="Horizontal">
        <Button Width="50"
                Height="50"
                Click="PlayMedia"
                Content="Play" />
        <Button Width="50"
                Height="50"
                Click="PauseMedia"
                Content="Pause" />
        <TextBlock x:Name="MyTextBlock"
                    FontSize="30"
                    Text="0" />
    </StackPanel>
</Grid>