Пример #1
0
        public bool TrozoStreamEnviado()
        {
            StreamPacket packet = new StreamPacket();

            Byte[] bytes     = new Byte[12000]; //12K
            int    longitud  = 0;
            bool   terminado = false;

            if (mPacketNum == 0)
            {
                packet.nombreArchivo = System.IO.Path.GetFileName(mActualNombreArchivo);
                MetadatosInfoFichero metaData = new MetadatosInfoFichero();
                metaData.LeerMetadatos(mActualNombreArchivo);
                packet.album   = metaData.NombreAlbum;
                packet.artista = metaData.NombreArtista;
                packet.titulo  = metaData.Titulo;
            }

            try
            {
                longitud = mActualStream.Read(bytes, 0, 12000);
                packet.stream.Write(bytes, 0, longitud);
                packet.stream.Position = 0;
                packet.guid            = mActualGuid;

                if (mActualStream.Length != mActualStream.Position && !mStreamParado)
                {
                    terminado = false;
                    packet.esFinalDeStream = false;
                }
                else
                {
                    terminado = true;
                    packet.esFinalDeStream = true;
                    mActualStream.Close();
                }

                packet.nombreNodoEmisor = mNombreNodo;
                packet.numPacket        = mPacketNum++;

                if (compartirStream != null)
                {
                    compartirStream(packet);
                }
            }
            catch (Exception)
            {
                terminado = true;
            }

            return(terminado);
        }
Пример #2
0
        protected void ActualizarStream(StreamPacket packet)
        {
            lock (Lock)
            {
                mSyncStream.Position = mSyncStreamUltimaPosicionEscrita;
                AyudanteStream.CopiarStream(packet.stream, mSyncStream);
                mSyncStreamUltimaPosicionEscrita = mSyncStream.Position;
                mStreamEntrante = !packet.esFinalDeStream;

                if (mStreamEntrante == false)
                {
                    mMensajeInfo("Procesamiento multimedia finalizado con éxito.\n");
                }
            }
        }
Пример #3
0
        public void CompartirStream(StreamPacket sp)
        {
            switch (estadoStream)
            {
            case EstadoStream.Inicial:
                estadoStream = EstadoStream.Procesando;
                mUltimoTrozo = -1;
                break;

            case EstadoStream.Procesando:
                mTrozo = sp.numPacket;

                if (sp.esFinalDeStream)
                {
                    estadoStream = EstadoStream.Inicial;
                }
                break;
            }
            if (null != StreamChanged)
            {
                StreamChanged(this, new StreamChangedEventArgs(sp));
            }
        }
 public void ServicioGestionarAudio(StreamPacket packet)
 {
     CheckDispose();
     mAyudanteAudio.CompartirStream(packet);
 }
Пример #5
0
 internal StreamChangedEventArgs(StreamPacket packet)
 {
     this.mStreamPacket = packet;
 }