3

我正在使用以下 XAML 通过 Silverlight 媒体元素显示流式视频:

<UserControl x:Class="slplayer.MainPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  Padding="0">
        <!-- source is set to a custom MediaStreamSource in code behind -->
        <MediaElement Name="mediaElement" HorizontalAlignment="Stretch"
               VerticalAlignment="Stretch" Margin="0" Stretch="Uniform" />
</UserControl>

并且期望视频应该播放并且应该根据播放窗口的大小消耗所有可用的水平空间或所有可用的垂直空间并缩放非约束尺寸以保持视频的纵横比。

在垂直尺寸受到限制的情况下,这正是发生的情况,但是(正如您在下面的屏幕截图中看到的那样)当水平尺寸受到限制时,两侧都会留下大量空间并且垂直尺寸被缩放到这个较窄的宽度。

我的问题是为什么视频没有占用所有水平空间?

我尝试过的事情:

  • 简化布局(这就是我得到上述 XAML 的方式)
  • 在 Web 浏览器和 SilverlightViewportElement 中托管控件
  • 修改 mp4 文件和视频轨道的尺寸
  • 在 WMP 中播放 mp4 文件(正确缩放)
  • 在使用的 html、body、div 和 object 上设置 css 样式

问题说明:

说明的问题

4

2 回答 2

0

将您的 MediaElement 放入 Grid 并删除所有 Alignment Stretch 设置以及 Padding 和 Margin 。仅将 Stretch 设置为 MediaElement 的统一。

PS:检查您的 aspx div 是否有 Silverlight 对象。它的 Width 和 Height 可能设置了错误的值。

于 2013-01-25T16:38:11.633 回答
0

试着把你MediaElement放在一个网格里。

于 2013-01-24T19:02:38.943 回答