silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了关于SilverLight视频播放器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

最近因为工作中用到Silverlight播放器的,所以接触到一些silverlight的东西,本打算实行拿来主义。谁料拿来的还是有些问题,只能自己修改。 下面对自己遇到的问题归纳一下,供以后的同学参。 首先,播放器最大的问题就是全屏后视频不能放大。其实关于放大的问题网上有很多文章,但是大都相同。其实只是添加一个缩放的方法。代码如下 :   private static double APP_WI
@H_450_7@
@H_450_14@
@H_450_14@

最近因为工作中用到Silverlight播放器的,所以接触到一些silverlight的东西,本打算实行拿来主义。谁料拿来的还是有些问题,只能自己修改

下面对自己遇到的问题归纳一下,供以后的同学参
首先,播放器最大的问题就是全屏后视频不能放大。其实关于放大的问题网上有很多文章,但是大都相同。其实只是添加一个缩放的方法代码如下


  private static double APP_WIDTH = 498;  // Application Width  整播放部分(包括下面的进度声音等按钮)的宽度,这个很重要,我

遇到的最后一个问题就是这个,因为这个设置不好,缩放比例就会有问题
        private static double APP_HEIGHT = 414; // Application Height  整播放部分(包括下面的进度声音等按钮)的高度
        private bool _scale = false;            // _scale flag 

public MainPage()
        {
            InitializeComponent();           
            CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
            Application.Current.Host.Content.FullScreenChanged += new EventHandler(Content_Resized);
        }
private void FullScreenButton_Click(object sender,RoutedEventArgs E)
        {
           
            _scale = !Application.Current.Host.Content.IsFullScreen;
            Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
           
        }
 void Content_Resized(object sender,EventArgs E)

        {

            double currentWidth = Application.Current.Host.Content.ActualWidth;

            double currentHeight = Application.Current.Host.Content.ActualHeight;


            if (_scalE)
            {
                // Scale up the Canvas   
                Translate.X = 0;
                Translate.Y = 0;               
                Scale.ScaleX = currentWidth / APP_WIDTH;
                Scale.ScaleY = currentHeight / APP_HEIGHT;
               
            }
            else
            {
                // position the Canvas to the center
                Translate.X = (currentWidth - APP_WIDTH) / 2;
                Translate.Y = (currentHeight - APP_HEIGHT) / 2;
                Scale.ScaleX = 1;
                Scale.ScaleY = 1;
               
            }
           

       
其实方法很简单很容易看懂,可能是因为刚接触的原因,一直不明白 <ScaleTransform ScaleX="1" ScaleY="1" x:Name="Scale" />在前台页面时怎

么使用的,因为这个问题浪费不少时间,后来多看了几个例子后,豁然发现原来无论是Grid还是MediaElement都有类似这样地方:
 <Grid.RenderTransform>//RenderTransform这个在userControl,Grid,MediaElement里面都有。
                <TransformGroup>
                    <ScaleTransform ScaleX="1" ScaleY="1" x:Name="Scale" />
                    <TranslateTransform X="0" Y="0" x:Name="Translate" />
                </TransformGroup>
            </Grid.RenderTransform>
加上这些后视频就能正常缩放了。

其次,我的问题是加完这些缩放后视频的位置不正确,视频的左上角在屏幕的中央,这个问题也让我百思不得其解,看了很多资料,貌似都是我上面

那样设置的啊,没有额外的其他了。后来因为后面的问题才发现,其实是因为我只缩放了MediaElement,而这个空间是居中显示的所以视频的位置不

对,视频下面的进度条等的位置也不对,后来对整个这些所在的Grid进行缩放后终于正确。
最后,说下进度条的问题,在上面的问题中发现进度条因为没有缩放,在屏幕的中间,所以就先修改了进度条的隐藏,其实这个很简单。代码如下:
private void transportControls_MouSELEave(object sender,RoutedEventArgs E)
        {
            MediaGrid.Height += transportHeight;
            //transportControls.Visibility = Visibility.Collapsed;
            playPauseButton.Visibility = Visibility.Collapsed;
            time.Visibility = Visibility.Collapsed;
            muteButton.Visibility = Visibility.Collapsed;
            volumeSlider.Visibility = Visibility.Collapsed;
            fullScreenButton.Visibility = Visibility.Collapsed;
        }
        private void transportControls_MouseEnter(object sender,RoutedEventArgs E)
        {
            MediaGrid.Height -= transportHeight;
            //transportControls.Visibility = Visibility.Visible;
            playPauseButton.Visibility = Visibility.Visible;
            time.Visibility = Visibility.Visible;
            muteButton.Visibility = Visibility.Visible;
            volumeSlider.Visibility = Visibility.Visible;
            fullScreenButton.Visibility = Visibility.Visible;          
        }

另外,在调试过程中因为缓存问题,消耗不少时间,因为我的silverlight是放到SharePoint网站上的,所以一直在网站上调试,(其实可以使用本

地视频进行调试 :-P),但是IE缓存太厉害了,我把播放器删除后仍能播放,最后发现只要清楚临时文件里所有东西就OK。(临时文件存放位置:C:

/Users/用户名/ApPDAta/Local/Microsoft/Windows/Temporary Internet Files)总之,因为对Silverlight第一次接触,烦了很多低级错误吧。就此引以为戒吧。

@H_450_14@

大佬总结

以上是大佬教程为你收集整理的关于SilverLight视频播放器全部内容,希望文章能够帮你解决关于SilverLight视频播放器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:silverlight关于播放视频
猜你在找的silverlight相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap