次の 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 スタイルを設定する
問題は次のとおりです。