0

C#/XAML を使用してバックグラウンド オーディオ Windows 8 ストア アプリを実装しており、BackgroundCapableMedia で MediaElement を使用して、バックグラウンドでオーディオを実行することができました。そのブログ投稿によると、プレイリストを再生できるはずです。

しかし、トラックが終了すると、次のトラックに移動する方法がわかりません。を使用するmediaElement.MediaEndedと、アプリケーションがバックグラウンドにあるときにイベント ハンドラーが呼び出されません。

4

1 に答える 1

0

基本的には、独自のプレイリストを作成し、ロジックを自分で実装する必要があります。プレイリストは単なるコレクションにすることができ、コレクション内の次のトラックを取得して再生します。私のコードの例:

internal ObservableCollection<StoryViewModel> Playlist { get; set; }

void me_MediaEnded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    Debug.WriteLine("me_MediaEnded");

    // Zero or one tracks only, so just end...
    if (Playlist.Count <= 1)
    {
        return;
    }
    else
    {
        // We have more tracks we need to play
        Playlist.RemoveAt(0);
        PlayPlaylist();
    }
}

internal void PlayPlaylist()
{
    if (Playlist.Count == 0)
        return;

    // Set the MediaControls metadata
    MediaControl.ArtistName = _svm.ProgramTitle ?? "NPR";
    MediaControl.TrackName = _svm.Title;

    // This centralized dispatcher object is updated by each page to ensure it is current
    _dispatcher.RunAsync(
        CoreDispatcherPriority.Normal, () =>
        {
            // Set the MediaElement to the audio and play
            Me.Source = _svm.Mp3Uri;
            Me.Play();
        });
}
于 2012-11-29T15:40:47.447 に答える