/// <summary> /// Initializes a new instance of the <see cref="StreamFrame"/> class. /// </summary> public StreamFrame() { InitializeComponent(); // Audio/video stream source init AvStream = new AvStreamSource(frameWidth, frameHeight); StreamDisplay.SetSource(AvStream); StreamDisplay.AutoPlay = true; StreamDisplay.Play(); // Background Worker Init bw.WorkerReportsProgress = true; bw.WorkerSupportsCancellation = true; bw.DoWork += new DoWorkEventHandler(bwDoWork); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwRunWorkerCompleted); // Run the background worker that starts the connection bw.RunWorkerAsync(); // Attempt to connect to a MOGA controller try { Debug.WriteLine("Checking for MOGA controller..."); mogaController.SetListener(this); mogaController.Connect(); } catch (Exception ex) { Debug.WriteLine("Failed to connect to a MOGA Controller: " + ex.HResult); } }
/// <summary> /// Initializes a new instance of the <see cref="StreamFrame"/> class. /// </summary> public StreamFrame() { InitializeComponent(); // Audio/video stream source init AvStream = new AvStreamSource(); // Show the progress bar Waitgrid.Visibility = Visibility.Visible; currentStateText.Visibility = Visibility.Visible; }
/// <summary> /// Initializes a new instance of the <see cref="StreamFrame"/> class. /// </summary> public StreamFrame() { InitializeComponent(); // Audio/video stream source init AvStream = new AvStreamSource(frameWidth, frameHeight); StreamDisplay.SetMediaStreamSource(AvStream); StreamDisplay.AutoPlay = true; StreamDisplay.Play(); // Show the progress bar Waitgrid.Visibility = Visibility.Visible; currentStateText.Visibility = Visibility.Visible; }
/// <summary> /// Initialize the media element for playback /// </summary> /// <param name="streamConfig">Object containing stream configuration details</param> void InitializeMediaPlayer(LimelightStreamConfiguration streamConfig, AvStreamSource streamSource) { this._streamSource = streamSource; AudioEncodingProperties audioProperties = AudioEncodingProperties.CreatePcm(48000, 2, 16); VideoEncodingProperties videoProperties = VideoEncodingProperties.CreateUncompressed(MediaEncodingSubtypes.H264Es, (uint)streamConfig.GetWidth(), (uint)streamConfig.GetHeight()); videoProperties.ProfileId = H264ProfileIds.High; _videoDesc = new VideoStreamDescriptor(videoProperties); _audioDesc = new AudioStreamDescriptor(audioProperties); _mss = new MediaStreamSource(_videoDesc, _audioDesc); _mss.BufferTime = TimeSpan.Zero; _mss.CanSeek = false; _mss.Duration = TimeSpan.Zero; _mss.SampleRequested += _mss_SampleRequested; // Set for low latency playback StreamDisplay.RealTimePlayback = true; // Set the audio category to take advantage of hardware audio offload StreamDisplay.AudioCategory = AudioCategory.ForegroundOnlyMedia; // Render on the full window to avoid extra compositing StreamDisplay.IsFullWindow = true; // Disable built-in transport controls StreamDisplay.AreTransportControlsEnabled = false; // Start playing right away StreamDisplay.AutoPlay = true; StreamDisplay.SetMediaStreamSource(_mss); }