SystemMediaTransportControlsをバックグラウンドオーディオアプリケーションで使用しようとしています。私は、オーディオを再生するMediaPlayerクラスを使用しています。音楽のプロパティを設定すると、サムネイルはすべてうまく動作しているように見えますが、コントロールボタン(「次へ」ボタン)を設定することはまったく機能していません。一度に完全なプレイリストを取得できないという点で、私のユースケースは多少ユニークです。次のトラックは、内部メソッド呼び出しでのみ使用できます。この部分は機能していないSystemMediaTransportControls - プロパティが動作しない設定
var playbackItem = new MediaPlaybackItem(source);
var displayProperties = playbackItem.GetDisplayProperties();
displayProperties.Type = Windows.Media.MediaPlaybackType.Music;
displayProperties.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri(_currentTrack.AlbumArtUrl));
displayProperties.MusicProperties.AlbumArtist = displayProperties.MusicProperties.Artist = _currentTrack.Artist;
displayProperties.MusicProperties.Title = _currentTrack.SongTitle;
displayProperties.MusicProperties.AlbumTitle = _currentTrack.Album;
playbackItem.CanSkip = true;
playbackItem.ApplyDisplayProperties(displayProperties);
_player.Source = playbackItem;
、「次へ」:この部分は正常に動作している
、ボリュームコントロールが正しく、すべての音声情報とサムネイルが表示されます。ここでは
は私がやっているものですボタンがまだ無効になっている場合、「レコード」ボタンは表示されません。私はオンラインで回答を探していましたが、何か有用なものを見つけることができませんでした。いずれの答えも高く評価されます。
これはうまくいきます - ありがとう!あなたが手動でSMTCを制御するという敗北を決心したような場合でも、アプリがバックグラウンドになった場合に何が起こるかを処理する必要があります。私はCommandManager経由でSMTCのコントロールを有効にする別の方法を見つけました:set CommandManager.NextBehavior.EnablingRule = MediaCommandEnablingRule.Always、そしてCommandManagerからのNextReceivedイベントを処理します。 – sqexpress