public async void Finish() { StreamProcessor.CloseConnection(); var dispatcher = SystemUtil.GetCurrentDispatcher(); if (dispatcher != null) { await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { MoviePlaybackData.Image = null; }); } if (AvContent == null) { return; } try { await AvContent.StopStreamingAsync().ConfigureAwait(false); } catch (Exception) { DebugUtil.Log("Failed to stop movie stream"); } finally { AvContent = null; } }
public DeviceApiHolder(SonyCameraDeviceInfo info) { if (info.Endpoints.ContainsKey("camera")) { try { Camera = new CameraApiClient(new Uri(info.Endpoints["camera"])); } catch { }; } if (info.Endpoints.ContainsKey("system")) { try { System = new SystemApiClient(new Uri(info.Endpoints["system"])); } catch { }; } if (info.Endpoints.ContainsKey("avContent")) { try { AvContent = new AvContentApiClient(new Uri(info.Endpoints["avContent"])); } catch { }; } if (info.FriendlyName == "DSC-QX10") { ProductType = ProductType.DSC_QX10; } capability.PropertyChanged += api_PropertyChanged; }
public static async Task <string> PrepareMovieStreamingAsync(AvContentApiClient av, string contentUri) { var uri = await av.SetStreamingContentAsync(new PlaybackContent { Uri = contentUri, RemotePlayType = RemotePlayMode.SimpleStreaming }).ConfigureAwait(false); await av.StartStreamingAsync().ConfigureAwait(false); return(uri.Url); }
public async Task <bool> Pause(AvContentApiClient api) { try { await api.PauseStreamingAsync().ConfigureAwait(false); } catch (RemoteApiException e) { DebugUtil.Log(() => { return(e.StackTrace); }); return(false); } return(true); }
public async Task <bool> Start(AvContentApiClient api, PlaybackContent content, string name) { if (IsProcessing) { throw new InvalidOperationException("Already processing"); } AvContent = api; try { var location = await api.SetStreamingContentAsync(content).ConfigureAwait(false); await api.StartStreamingAsync().ConfigureAwait(false); RunLoop(false); var success = await StreamProcessor.OpenConnection(new Uri(location.Url)).ConfigureAwait(false); if (!success) { AvContent = null; } var dispatcher = SystemUtil.GetCurrentDispatcher(); if (dispatcher != null) { await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { MoviePlaybackData.FileName = name; }); } return(success); } catch (Exception e) { DebugUtil.Log(e.StackTrace); AvContent = null; return(false); } }
public static async Task SeekMovieStreamingAsync(AvContentApiClient av, MoviePlaybackData status, TimeSpan seekTarget) { var originalStatus = status.StreamingStatus; if (status.StreamingStatus == StreamStatus.Error || status.StreamingStatus == StreamStatus.Invalid) { return; } if (status.StreamingStatus == StreamStatus.Started) { await PauseMovieStreamingAsync(av, status).ConfigureAwait(false); } await av.SeekStreamingPositionAsync(new PlaybackPosition() { PositionMSec = (int)seekTarget.TotalMilliseconds }).ConfigureAwait(false); if (originalStatus == StreamStatus.Started || originalStatus == StreamStatus.PausedByEdge) { await StartMovieStreamingASync(av, status).ConfigureAwait(false); } }
public RemoteApiContentsLoader(TargetDevice device) { AvContentApi = device.Api.AvContent; Udn = device.Udn; }
public static async Task StartMovieStreamingASync(AvContentApiClient av, MoviePlaybackData status) { await av.StartStreamingAsync().ConfigureAwait(false); }