[UWP][MediaElement] 再生位置を取得/設定する

Postionプロパティを使用すると、現在の再生位置を取得したり設定したりする音ができます。再生位置はTImeSpan型です。

はじめに再生位置を取得する例を示します。

TimeSpan ts = myMediaElement.Position;

次に再生位置を設定する例を示します。以下は10秒の位置から再生をする例です。

myMediaElement.Position = new TimeSpan(0, 0, 10);
myMediaElement.Play();

[UWP][MediaElement] 再生スピードを変更する

再生スピードを変更するにはPlaybackRateプロパティを使用します。

値は1が通常もスピード、0.5で半分のスピード、2で2倍のスピードになります。

半分のスピードにする例を以下に示します。

myMediaElement.PlaybackRate = 2;

[UWP][MediaElement] 再生中の音源をミュートする

再生中の音源をミュートにする場合はIsMutedプロパティにtrueを設定します。

メインページにbtnMuteという名前のButtonを貼り付けてClickイベントでミュートのON/OFFを切り替える場合のコード例を以下に示します。

private void btnMute_Click(object sender, RoutedEventArgs e)
{
    myMediaElement.IsMuted = !myMediaElement.IsMuted;
}

[UWP][MediaElement] 音源が再生中かどうかを判定する

MediaElementの音源が再生中かどうかを判定するにはCurrentStateプロパティを使用します。

このプロパティはMediaElementState列挙体を表し、以下例のように使用して判定すること亜できます。

if (myMediaElement.CurrentState == MediaElementState.Playing)
{
    // 再生中
}
else if (myMediaElement.CurrentState == MediaElementState.Paused)
{
    // 一時停止中
}
else if (myMediaElement.CurrentState == MediaElementState.Stopped)
{
    // 停止中
}

[UWP][MediaElement] ボリュームを変更する

MediaElementで再生している音源はボリュームを変更することができます。

ここでは volumeSlider という名前のSliderを配置してボリューム操作をできるようにしてみます。

XAMLの例を以下に示します。

<MediaElement Source="Assets/Sample.wma" Name="myMediaElement" />

<Slider Name="volumeSlider" VerticalAlignment="Center" ValueChanged="ChangeMediaVolume" 
       Minimum="0" Maximum="100" SmallChange="1" LargeChange="20" Value="50" />

MediaElementの再生ボリュームはVolumeプロパティで変更することができ、値は0~1の範囲で指定します。

よってスライダーの値が変更されたときのコードは以下のようにします。

private void ChangeMediaVolume(object sender, RangeBaseValueChangedEventArgs e)
{
    myMediaElement.Volume = (double)volumeSlider.Value / 100;
}