private async void StartMediaElement() { // To use AudioCategory.BackgroundCapableMedia: // * OnWindows 8 set MediaControl.PlayPressed, MediaControl.PausePressed, // MediaControl.PlayPauseTogglePressed and MediaControl.StopPressed. // * On Windows 8.1 set SystemMediaTransportControls.ButtonPressed. systemControls = SystemMediaTransportControls.GetForCurrentView(); systemControls.ButtonPressed += OnButtonPressed; systemControls.IsPlayEnabled = true; systemControls.IsPauseEnabled = true; systemControls.PlaybackStatus = MediaPlaybackStatus.Playing; mediaPlayer = new MediaElement(); mediaPlayer.AudioCategory = AudioCategory.BackgroundCapableMedia; mediaPlayer.AutoPlay = true; mediaPlayer.CurrentStateChanged += OnCurrentStateChanged; this.Content = mediaPlayer; HttpClient client = new HttpClient(); // Add custom headers or credentials. client.DefaultRequestHeaders.Add("Foo", "Bar"); //Uri uri = new Uri("http://localhost/song.mp3?slow=1000&?bufferlength=100000&lastModified=true"); Uri uri = new Uri("http://video.ch9.ms/ch9/70cc/83e17e76-8be8-441b-b469-87cf0e6a70cc/ASPNETwithScottHunter_high.mp4"); HttpRandomAccessStream stream = await HttpRandomAccessStream.CreateAsync(client, uri); // If you need to use HttpClient, use MediaElement.SetSource() instead of MediaElement.Source. mediaPlayer.SetSource(stream, stream.ContentType); }
static public IAsyncOperation <HttpRandomAccessStream> CreateAsync(HttpClient client, Uri uri) { HttpRandomAccessStream randomStream = new HttpRandomAccessStream(client, uri); return(AsyncInfo.Run <HttpRandomAccessStream>(async(cancellationToken) => { await randomStream.SendRequesAsync().ConfigureAwait(false); return randomStream; })); }
static public IAsyncOperation<HttpRandomAccessStream> CreateAsync(HttpClient client, Uri uri) { HttpRandomAccessStream randomStream = new HttpRandomAccessStream(client, uri); return AsyncInfo.Run<HttpRandomAccessStream>(async (cancellationToken) => { await randomStream.SendRequesAsync().ConfigureAwait(false); return randomStream; }); }