Пример #1
0
        /// <summary>
        ///     Raised when a message is recieved from the foreground app
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BackgroundMediaPlayer_MessageReceivedFromForeground(object sender,
                                                                         MediaPlayerDataReceivedEventArgs e)
        {
            var message = MessageHelper.ParseMessage(e.Data);

            if (message is AppSuspendedMessage)
            {
                AppSuspended?.Invoke(this, null);
            }
            else if (message is AppResumedMessage)
            {
                AppResumed?.Invoke(this, null);
            }
            else if (message is StartPlaybackMessage)
            {
                StartPlayback?.Invoke(this, null);
            }
            else if (message is SkipNextMessage)
            {
                SkipToNext?.Invoke(this, null);
            }
            else if (message is SkipPreviousMessage)
            {
                SkipToPrev?.Invoke(this, null);
            }
            else
            {
                var changedMessage = message as TrackChangedMessage;
                if (changedMessage != null)
                {
                    TrackChanged?.Invoke(this, changedMessage.QueueId);
                }

                else
                {
                    var playlistMessage = message as UpdatePlaylistMessage;
                    if (playlistMessage != null)
                    {
                        UpdatePlaylist?.Invoke(this, playlistMessage.Tracks);
                    }

                    else
                    {
                        var addMessage = message as AddToPlaylistMessage;
                        if (addMessage != null)
                        {
                            AddToPlaylist?.Invoke(addMessage.Tracks, addMessage.Position);
                        }
                        else
                        {
                            var updateMessage = message as UpdateUrlMessage;
                            if (updateMessage != null)
                            {
                                TrackUpdateUrl?.Invoke(this, updateMessage);
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Click event handeler for Play Button
        /// </summary>
        /// <param name="sender">Object triggering the summoning event</param>
        /// <param name="e"><see cref="EventArgs"/> passed from sender</param>
        private void play_button_Click(object sender, EventArgs e)
        {
            if (!play_button_toggle)
            {
                play_button.Image = Properties.Resources.pause;
                StartPlayback?.Invoke(this, new EventArgs());

                record_button.Enabled = false;
            }
            else
            {
                play_button.Image = Properties.Resources.play;
                PauseAudio?.Invoke(this, new EventArgs());


                record_button.Enabled = true;
            }

            play_button_toggle = !play_button_toggle;
        }
Пример #3
0
        private static void StartPlayback(dynamic cameraInfo)
        {
            var primaryProfile = StreamProfile.VIDEO_H264_2MBIT_L40;

            string[] capabilities         = ((JArray)cameraInfo.capabilities).ToObject <string[]>();
            var      matchingCapabilities = from c in capabilities where c.StartsWith("streaming.cameraprofile") select c;

            List <int> otherProfiles = new List <int>();

            foreach (var capability in matchingCapabilities)
            {
                var cleanCapability    = capability.Replace("streaming.cameraprofile.", "");
                var successParsingEnum = Enum.TryParse(cleanCapability, out StreamProfile targetProfile);

                if (successParsingEnum)
                {
                    otherProfiles.Add((int)targetProfile);
                }
            }

            if ((bool)cameraInfo.properties["audio.enabled"])
            {
                otherProfiles.Add((int)StreamProfile.AUDIO_AAC);
            }

            StartPlayback sp = new StartPlayback();

            sp.SessionId     = random.Next(0, 100);
            sp.Profile       = (int)primaryProfile;
            sp.OtherProfiles = otherProfiles.ToArray <int>();

            using (MemoryStream spStream = new MemoryStream())
            {
                Serializer.Serialize(spStream, sp);
                var formattedSPOutput = PreformatData(PacketType.START_PLAYBACK, spStream.ToArray());
                ws.Send(formattedSPOutput, 0, formattedSPOutput.Length);
            }
        }
Пример #4
0
 internal void OnStartPlayback(SessionEventArgs e)
 {
     StartPlayback.RaiseEvent(this, e);
 }