Exemple #1
0
        public void mContratoDeServicio_StreamAudioListener(object sender, StreamChangedEventArgs e)
        {
            MultimediaUserControl audio = Audio;

            if (audio != null)
            {
                if (audio.CheckAccess())
                {
                    bool play = false;
                    play = e.StreamPacket.nombreNodoEmisor == TextBoxNombreUsuario.Text;

                    MessageBoxResult mbr = MessageBoxResult.Cancel;
                    if (false == play)
                    {
                        mbr = MessageBox.Show(e.StreamPacket.nombreNodoEmisor + " le invita a escuchar la canción '" + e.StreamPacket.titulo +
                                              "'. ¿Acepta la invitación?",
                                              "Invitación de audio.", MessageBoxButton.OKCancel);
                    }

                    if (play || mbr == MessageBoxResult.OK)
                    {
                        Utilidades.SetTextoLabel(audio.LabelMetadatosLineaTitulo, "Título:");
                        Utilidades.SetTextoLabel(audio.LabelMetadatosLineaArtista, "Artista:");
                        Utilidades.SetTextoLabel(audio.LabelMetadatosLineaAlbum, "Álbum:");

                        Utilidades.SetTextoTextBlock(audio.TextBlockValorMetadatosLineaTitulo, e.StreamPacket.titulo);
                        Utilidades.SetTextoTextBlock(audio.TextBlockValorMetadatosLineaArtista, e.StreamPacket.artista);
                        Utilidades.SetTextoTextBlock(audio.TextBlockValorMetadatosLineaAlbum, e.StreamPacket.album);

                        audio.StartPlayElementoMultimedia("http://localhost:8088/" + TextBoxNombreUsuario.Text + TextBoxNombreRed.Text + "/audio/" +
                                                          PseudoServidorHttpListener.StringHttpGuardado(e.StreamPacket.nombreArchivo));
                    }
                }
                else
                {
                    if (mPseudoServidorAudioHttpListener != null)
                    {
                        mPseudoServidorAudioHttpListener.StreamChanged(e);
                        if (e.StreamPacket.numPacket == 0)
                        {
                            audio.Dispatcher.Invoke(DispatcherPriority.Normal, new _mContratoDeServicio_StreamAudioListenerHandler(mContratoDeServicio_StreamAudioListener), sender, e);
                        }
                    }
                }
            }
        }
Exemple #2
0
 protected void VideoBGWorkerThreadFinished(object sender, RunWorkerCompletedEventArgs e)
 {
     if (e.Error != null)
     {
         MessageBox.Show(String.Format("Ocurrió un error en el hilo que procesa el video:{0}", e.Error.Message));
     }
     else
     {
         mPseudoServidorVideoHttpListener = null;
         if (mCanalP2PThreadBGWorker == null && mPseudoServidorAudioHttpListener == null)
         {
             Utilidades.SetTextoLabel(LabelValorEstado, "Desconectado");
             mEstado = EstadoRed.Desconectado;
             Utilidades.SetEstadoActivadoContentControl(TextBoxNombreUsuario, true);
             Utilidades.SetEstadoActivadoContentControl(TextBoxNombreRed, true);
             Utilidades.SetEstadoActivadoContentControl(TextBoxPassword, true);
             Utilidades.SetEstadoActivadoContentControl(BotonConectar, true);
         }
     }
 }
Exemple #3
0
        private void mServiceContractThread(object sender, DoWorkEventArgs doWorkArgs)
        {
            mContratoDeServicio = new ContratoDeServicio();
            if (false == mContratoDeServicio.IniciarCanalP2P(Utilidades.GetTextoTextbox(TextBoxNombreUsuario), Utilidades.GetTextoTextbox(TextBoxNombreRed), Utilidades.GetTextoTextbox(TextBoxPassword)))
            {
                CerrarConexion();
            }

            mContratoDeServicio.EstadoRedChanged                 += new EventHandler <EstadoRedChangedEventArgs>(MiEstadoRedChanged);
            mContratoDeServicio.AyudanteChat.ChatChanged         += new EventHandler <ChatChangedEventArgs>(Chat_ChatChanged);
            mContratoDeServicio.AyudanteImagen.ImagenChanged     += new EventHandler <ImagenChangedEventArgs>(Imagen_ImagenChanged);
            mContratoDeServicio.AyudanteFichero.FicheroChanged   += new EventHandler <FicheroChangedEventArgs>(Fichero_FicheroChanged);
            mContratoDeServicio.AyudanteDescarga.DescargaChanged += new EventHandler <DescargaChangedEventArgs>(Descarga_DescargaChanged);

            if (Audio != null)
            {
                mContratoDeServicio.AyudanteAudio.StreamChanged += new EventHandler <StreamChangedEventArgs>(mContratoDeServicio_StreamAudioListener);

                mPseudoServidorAudioHttpListener = new PseudoServidorHttpListener(Utilidades.GetTextoTextbox(TextBoxNombreUsuario) + Utilidades.GetTextoTextbox(TextBoxNombreRed)
                                                                                  + "/audio/",
                                                                                  AudioBGWorkerThreadFinished, MensajeDeEstadoAudio,
                                                                                  mContratoDeServicio.AyudanteAudio.IniciarStream, mContratoDeServicio.AyudanteAudio.TrozoStreamEnviado);
            }

            if (Video != null)
            {
                mContratoDeServicio.AyudanteVideo.StreamChanged += new EventHandler <StreamChangedEventArgs>(mContratoDeServicio_StreamVideoListener);

                mPseudoServidorVideoHttpListener = new PseudoServidorHttpListener(Utilidades.GetTextoTextbox(TextBoxNombreUsuario) + Utilidades.GetTextoTextbox(TextBoxNombreRed)
                                                                                  + "/video/",
                                                                                  VideoBGWorkerThreadFinished, MensajeDeEstadoVideo,
                                                                                  mContratoDeServicio.AyudanteVideo.IniciarStream, mContratoDeServicio.AyudanteVideo.TrozoStreamEnviado);
            }

            while ((mPseudoServidorAudioHttpListener != null && mPseudoServidorVideoHttpListener != null) &&
                   (!(mPseudoServidorAudioHttpListener.EstaPseudoServidorPreparado || mPseudoServidorVideoHttpListener.EstaPseudoServidorPreparado)))
            {
                System.Threading.Thread.Sleep(0);
            }

            if (mPseudoServidorAudioHttpListener != null && mPseudoServidorVideoHttpListener != null)
            {
                while (mEstado == EstadoRed.Conectando)
                {
                    System.Threading.Thread.Sleep(100);
                    progressBarEstadoRed.Dispatcher.Invoke(DispatcherPriority.Normal,
                                                           (ThreadStart) delegate
                    {
                        progressBarEstadoRed.Value = ((progressBarEstadoRed.Value >= 100) ? 0 : progressBarEstadoRed.Value + 1);
                    });

                    if (mCanalP2PThreadBGWorker.CancellationPending)
                    {
                        progressBarEstadoRed.Dispatcher.Invoke(DispatcherPriority.Normal,
                                                               (ThreadStart) delegate
                        {
                            progressBarEstadoRed.Value = 0;
                        });
                        mCanalP2PThreadBGWorker = null;
                        break;
                    }
                }

                progressBarEstadoRed.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate { progressBarEstadoRed.Value = 100; });

                while (true)
                {
                    System.Threading.Thread.Sleep(1000);
                    if (mCanalP2PThreadBGWorker.CancellationPending)
                    {
                        progressBarEstadoRed.Dispatcher.Invoke(DispatcherPriority.Normal,
                                                               (ThreadStart) delegate
                        {
                            progressBarEstadoRed.Value = 0;
                        });
                        mCanalP2PThreadBGWorker = null;
                        break;
                    }
                }
            }
            else
            {
                mEstado = EstadoRed.UsuarioFallido;
                Utilidades.SetTextoLabel(lblValorEstado, "Desconectando...");
                Utilidades.SetTextoTextBox(TextBoxNombreUsuario, "USUARIO FALLIDO - Por favor, espere unos segundos...");

                CerrarConexion();

                mContratoDeServicio     = null;
                mCanalP2PThreadBGWorker = null;

                MessageBox.Show("Lo sentimos en este momento su Nombre de Usuario ya existe en la red.\n" +
                                "\nPor favor, vuelva a intentarlo con un Nombre de Usuario distinto.",
                                "Nombre de Usuario actualmente en uso.",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }