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、およびオブジェクトに CSS スタイルを設定する

問題は次のとおりです。

問題の説明

4

2 に答える 2

0

MediaElementグリッドに入れてみてください。

于 2013-01-24T19:02:38.943 に答える
0

MediaElement をグリッドに配置し、すべての配置ストレッチ設定と、パディングとマージンも削除します。MediaElement の Stretch のみを均一に設定します。

PS: Silverlight オブジェクトの aspx div を確認してください。その幅と高さが間違った値に設定されている可能性があります。

于 2013-01-25T16:38:11.633 に答える