现在的位置: 首页 > 综合 > 正文

影像播放与画面处理

2014年01月17日 ⁄ 综合 ⁄ 共 2865字 ⁄ 字号 评论关闭
<Window x:Class="WPF影像播放与画面处理.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="WPF影像播放与画面处理" Width="600" Height="600" WindowStyle="ToolWindow" Background="White">
    <Window.Foreground>
        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
            <GradientStop Color="Black" Offset="0" />
            <GradientStop Color="#FFE6FFFF" Offset="1" />
        </LinearGradientBrush>
    </Window.Foreground>
    <Grid>
        <Grid.Triggers>
            <!--开始播放视频-->
            <EventTrigger SourceName="btnStart" RoutedEvent="Button.Click">
                <BeginStoryboard x:Name="sb">
                    <Storyboard >
                        <MediaTimeline  CurrentTimeInvalidated="MediaTimeline_CurrentTimeInvalidated"
                           Source="xbox.wmv"
                           Storyboard.TargetName="mediaElement1"
                           RepeatBehavior="Forever"
                           />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
            <!--暂停播放-->
            <EventTrigger SourceName="btnPause" RoutedEvent="Button.Click">               
                <PauseStoryboard BeginStoryboardName="sb"/>               
            </EventTrigger>
            <!--继续播放-->
            <EventTrigger SourceName="btnResume" RoutedEvent="Button.Click">
                <ResumeStoryboard BeginStoryboardName="sb"/>
            </EventTrigger>
            <!--停止播放-->
            <EventTrigger SourceName="btnStop" RoutedEvent="Button.Click">
                <StopStoryboard BeginStoryboardName="sb"/>
            </EventTrigger>
        </Grid.Triggers>
        <MediaElement Margin="10 10 10 100" Name="mediaElement1" MediaOpened="mediaElement1_MediaOpened" />        
       
        <Button Content="Start" Height="23" HorizontalAlignment="Left" Margin="85,516,0,0" Name="btnStart" VerticalAlignment="Top" Width="75" />
        <Button Content="Pause" Height="23" HorizontalAlignment="Right" Margin="0,516,310,0" Name="btnPause" VerticalAlignment="Top" Width="75" />
        <Button Content="Resume" Height="23" HorizontalAlignment="Left" Margin="301,516,0,0" Name="btnResume" VerticalAlignment="Top" Width="75" />
        <Button Content="Stop" Height="23" HorizontalAlignment="Left" Margin="411,516,0,0" Name="btnStop" VerticalAlignment="Top" Width="75" />
        <Slider Height="23" HorizontalAlignment="Left" Margin="85,474,0,0" Name="slider1" VerticalAlignment="Top" Width="401" ValueChanged="slider1_ValueChanged" />
    </Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WPF影像播放与画面处理
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void mediaElement1_MediaOpened(object sender, RoutedEventArgs e)
        {
            slider1.Maximum = mediaElement1.NaturalDuration.TimeSpan.TotalMilliseconds;
        }

        private void MediaTimeline_CurrentTimeInvalidated(object sender, EventArgs e)
        {
            slider1.Value = mediaElement1.Position.TotalMilliseconds;
        }

        private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            //mediaElement1.Position = new TimeSpan(mediaElement1.Position.Ticks);
        }
    }
}

源代码下载:点击打开链接

抱歉!评论已关闭.