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); }
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"); } } }
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); }
internal StreamChangedEventArgs(StreamPacket packet) { this.mStreamPacket = packet; }