[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;
}

[UWP][MediaElement] 自動再生する

MediaElementにセットした音源は自動再生することができます。

まずはMediaElementのSourceプロパティに再生する音源をセットしておき、AutoPlayをTrueにセットします。

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

上記のように設定すると、アプリ起動時に自動で再生されます。

[UWP][MediaElement] 音源を再生する

MediaElementを使用すると音源を再生することができます。

はじめにMediaElementをメインページに貼り付けて Sourceプロパティに再生する音源ファイルを指定します。

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

音源の再生、一時停止、停止は以下例のように行うことができます(3つのボタンを配置してある想定のコードです)。

// 再生
private void btnPlay_Click(object sender, RoutedEventArgs e)
{
    myMediaElement.Play();
}

// 一時停止
private void btnPause_Click(object sender, RoutedEventArgs e)
{
    myMediaElement.Pause();
}

// 停止
private void btnStop_Click(object sender, RoutedEventArgs e)
{
    myMediaElement.Stop();
}

[UWP][InkCanvas] 文字を認識する

InkCanvasでは文字の認識をすることができます。

文字を認識するにはInkRecognizerContainerクラスを使用します。

RecognizerAsyncメソッドを使用するとInkCanvasに記述した文字の認識結果を取得することができます。このメソッドの引数にはInkCanvasのInkPresenter.StrokeContainerと認識する線を指定します。InkRecognitionTarget.Allを指定すると書かれたのすべてを認識範囲とします。

あとは、認識結果を1文字ずつ取り出します。

コード例と実行結果を以下に示します。

private async void btnRecognize_Click(object sender, RoutedEventArgs e)
{
    var recognizer = new InkRecognizerContainer();
    var result = await recognizer.RecognizeAsync(
        inkCanvas.InkPresenter.StrokeContainer, InkRecognitionTarget.);

    textBlock.Text = result.Select(x => x.GetTextCandidates().First()).Aggregate((x, y) => x + y);
}

文字の認識

 

[UWP][InkCanvas] 保存した画像を表示する

前回の記事で、描画した線をファイルに保存しました。

保存した画像ファイルを開くにはInkCanvasのInkPresenter.StrokeContainer.LoadAsync()メソッドを使用します。

コード例は以下の通りです。

以下にサンプルコードを示します

var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
openPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".png");
Windows.Storage.StorageFile file = await openPicker.PickSingleFileAsync();
if (null != file)
{
    using (var stream = await file.OpenSequentialReadAsync())
    {
        try
        {
            await inkCanvas.InkPresenter.StrokeContainer.LoadAsync(stream);
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
        }
    }
}