¿ por que la clase AudioTrack ( android ) reproduce audio con errores?

Hola estoy desarrollando un app que reproduce el audio en vivo que se le envía desde una pc, ambos están desarrollados con java lo que hago es enviar un paquete de byte por un datagramSocket al cliente ( el app android ) los recibe y luego reproduce con la clase AudioTrack. El problema es que al reproducir el paquete de bytes se producen errores por ejemplo :

1- El audio se escucha con errores con pequeños cortes.

2- En la consola de Android studio me muestra estos errores :

>     I/AudioTrack: This process already got info. FadeIn[0] FadeOut[0] FadeInRing[0] >         Skip ramp >         Manually recycle bitmap >     W/AudioTrack: Use of stream types is deprecated for operations other than volume control >         See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case 

Aquí adjunto el código de el emisor de audio (PC) y el receptor de audio( android )

CODIGO PC

public class PruebagrabacionAudio {          static TargetDataLine mic;         static DataLine.Info dLI = null;         //ejemplo de android         //static DatagramSocket socket;         static DatagramSocket skServer;         static int sampleRate = 16000,chanelConfig = 16,audioFormat = 2,minBufSize = 4096 ;         static boolean status = true;         static AudioFormat aF = new AudioFormat(sampleRate, chanelConfig, 1, true, false);         /**      * @param args the command line arguments      */     public static void main(String[] args) {         try{                   dLI= new DataLine.Info(TargetDataLine.class,aF);             mic = (TargetDataLine)AudioSystem.getLine(dLI);             new CapThread().start();          }catch(Exception e){          }      }      static class   CapThread extends Thread{        public void run(){            try{                  byte[] buffer = new byte[minBufSize];               System.out.println("INICIANDO EL SERVIDOR");                skServer = new DatagramSocket(8094);                 System.out.println("Esperando conexion");                DatagramPacket peticion = new DatagramPacket(buffer,buffer.length );                skServer.receive(peticion);                 int port_cliente = peticion.getPort();                 InetAddress IP_cliente = peticion.getAddress();                System.out.println("Peticion aceptada de la IP "+IP_cliente.getAddress());                DatagramPacket packet;                 mic.open(aF);                 mic.start();                 while(status){                     mic.read(buffer, 0, buffer.length);                     packet = new DatagramPacket(buffer,buffer.length,IP_cliente,port_cliente);                     skServer.send(packet);                 }             } catch (LineUnavailableException ex) {                Logger.getLogger(PruebagrabacionAudio.class.getName()).log(Level.SEVERE, null, ex);            } catch (IOException ex) {                Logger.getLogger(PruebagrabacionAudio.class.getName()).log(Level.SEVERE, null, ex);            }        }    }  } 

CODIGO ANDROID

public class CompruebaConexcion  {     DatagramSocket dsServer ;     final int puetoServer = 8094;      final int minBufSize = 4096;     byte[] buffer = new byte[minBufSize];     InetAddress ipServer ;     AudioTrack audioTrack;     ByteArrayInputStream baiss ;     public void iniciaSocketPruebaConex(){          Thread compruebaConex = new Thread(new Runnable() {             @Override             public void run() {                 try {                      dsServer = new DatagramSocket();                    ipServer =  InetAddress.getByName(IPCONEXION);                     DatagramPacket paket = new DatagramPacket(buffer,buffer.length,ipServer,puetoServer);                     dsServer.send(paket);                     DatagramPacket paketRespuesta = new DatagramPacket(buffer,buffer.length);                     while(true){                         dsServer.receive(paketRespuesta);                         baiss = new ByteArrayInputStream(paketRespuesta.getData());                         buffer = paketRespuesta.getData();                         playAudio(buffer);                      }                 } catch (IOException e) {                     e.printStackTrace();                 }/* catch (ClassNotFoundException e) {                     e.printStackTrace();                 }*/             }         });         compruebaConex.start();     }      public void playAudio(byte buffer[]){         int  minBuff = buffer.length ;         audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,                 16000,                 AudioFormat.CHANNEL_OUT_MONO,                 AudioFormat.ENCODING_PCM_16BIT,                 minBuff,                 AudioTrack.MODE_STATIC);          audioTrack.write(buffer,0,minBuff);         audioTrack.setNotificationMarkerPosition(minBuff);         //audioTrack.setPlaybackPositionUpdateListener(this);         audioTrack.play();       }   } 

¿Hay errores en mi código?

Estoy intentando pasar datos con ayax en laravel, les mostraré un poco mi script y como intento coger los datos en mi controlador, cada vez que ejecuto pues me indica que los datos están en null por ende no registra en las tablas, antes hice un código similar que funcionó bien pero ahora no encuentro el error, a los que puedan ayudarme se los agradeceré mucho de antemano. Al parecer los únicos datos que recoge son los los del primer array pero los otros datos no los pasa a mi controlador.

Al utilizar mysql de xampp junto con Nginx ocurren errores

apenas empecé a probar nginx y sé lo básico. Y noté que podía utilizar el servidor Mysql de xampp y ahorrarme un buen tiempo, pero noté que al utilizarlo, configurarlo y etc, si apagas el mysql en xampp y intentas volverlo a iniciar muestra que el puerto 3306 está ocupado sin haber ningún programa que lo utilice.

¿Algunas recomendaciones de cómo configurar Mysql en nginx, o que no debí hacer? Gracias 🙂

Errores con variables globales. Python

quería saber si podeís ayudarme. Es la primera vez que programo en python y no sé muy bien como va, solo he programado en java. Lo siento si tengo fallos. El caso es que estoy haciendo un programa , con una clase y varias funciones def, pero me da varios errores sobre que las variables no están definidas, pero si que lo están, o por lo menos creo que sí. Aquí os dejo un pequeño ejemplo de como lo tengo:

class Cliente:  sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #server = ('', 69) #TFTP utiliza UDP como protocolo de transporte en el puerto 69 BLCKSIDE = 512 MAXBLCKSIDE = 32768 MAXDUP = 10 RETRANS = 3 SOCK_TO= 5 MINBLCKSIDE = 9  def __init__(self, ipLocal = "", puerto = 69):     self.filename = " "     self.mode = b"ascii"     self.opcode = None     self.ipLocal = ipLocal     self.puerto = puerto     self.timeout = timeout     self.sigBlock = 0     self.numBlock = {}     self.buffer = {}     self.data = {}     self.contDup = 0     self.dup = {}     self.duracion = 0 #tiempo desde que empieza hasta que termina     self.bps = 0     self.kbps = 0     self.inicio = 0     self.fin = 0     self.bytes = 0   iter = True #Do-While while iter == True:     op = menu()     self.inicio = time.time()      if op == 1: #SWITCH-CASE         solicitud_RRQ()         respuesta()     elif op == 2:         solicitud_WRQ()         respuesta()     else:         print("Para salir. Introduce QUIT")         entrada = input("TFTP@UDP > ")         if entrada.rstrip() == "QUIT":             sock.close()             sys.exit(0)     iter = False  def menu():     op = 0     print('elige una opción.\n'         + '1 --> Lerctura del fichero.\n'         + '2 --> Escribir en el fichero.\n'         + '3 --> Salir.\n')     try:          op = int(input())     except ValueError:         print('El valor introducido debe ser un número en el rango (1-3). Por favor vuelva a intentarlo.\n')         op = int(input())      return op  def tiempo(self):     self.duracion = self.fin - self.inicio     if self.duracion == 0:         self.duracion = 1     self.bps = (self.bytes*8.0) / self.duracion     self.kbps = self.bps /1024.0  def solicitud_RRQ(self):     self.opcode = 1     self.mode = self.mode.encode('ascii')      print('Por favor introduzca el nombre del archivo.\n')     self.filename = str(input("TFTP@UDP > "))     self.filename = self.filename.encode('ascii')      frmt = b"!H"     frmt += b"%dsx" % len(self.filename)     frmt += b"5sx"      datagrama = struct.pack(frmt, self.opcode, filename, self.mode)     self.sock.sendto(datagrama, """server""")     return self.filename #Tienes que mirar los ACks, sigBloque  def respuesta(self):     while True:         datagrama = self.sock.recvfrom()         opcode = struct.unpack("!H", datagrama[:2])         self.numBlock += struct.unpack("!H", datagrama[2:4])         if opcode == 3:             (self.opcode, self.buffer, self.numBlock, self.data) = data_decode()             for i in self.numBlock:                 if self.numBlock !=i :                     f = open (self.filemane, 'r')                     for linea in f:                         f.write(self.data)                     f.close()                 else:                     self.dup += 1             self.numBlock = numBlock             numBlock += 1             ack_encode(numBlock)         elif opcode == 5:             (self.opcode, self.errCode, self.errMsg, self.errMsgs) = err_decode(self)             print(self.errMsgs)  def solicitud_WRQ(self):     self.opcode = 2     self.mode = self.mode.encode('ascii')      print('Por favor introduzca el nombre del archivo.\n')     self.filename = str(input("TFTP@UDP > "))     self.filename = self.filename.encode('ascii')      frmt = b"!H"     frmt += b"%dsx" % len(self.filename)     frmt += b"5sx"      datagrama = struct.pack(frmt, self.opcode, self.filename, self.mode)     self.sock.sendto(datagrama, """server""")     return self.filename  def ack_encode(*argv): #quitar esto para TCP     self.opcode = 4     for arg in argv:         self.buffer = struct.pack(str("!HH"), self.opcode, self.numBlock)     return self.buffer  def ack_decode(self):#quitar esto para TCP     self.opcode = 4     self.numBlock = 0     if len(self.buffer)>4:         self.buffer = self.buffer[0:4]         self.opcode, self.numBlock = struct.unpack(str("!HH"), self.buffer)      return self  def data_decode(self):     self.opcode = 3     self.data = None     (self.numBock) = struct.unpack(str("!H"), self.buffer[2:4])     self.data = self.buffer[4:]     return self  def err_decode(self):     self.opcode = 5     self.errCode = 0     self.errMsg = None     self.errMsgs = {         1: b"Archivo no encontrado.",         2: b"Violacion de acceso.",         3: b"Disco lleno o asignacion superada.",         4: b"Operacion TFTP ilegal.",         5: b"ID de transferencia desconocida.",         6: b"El archivo ya existe.",         7: b"No hay tal usuario"     }     longBuf = len(self.buffer)     if longBuf == 4:          frmt = b"!HH"         self.opcode,self.errCode = struct.unpack(frmt, self.buffer)     else:          frmt = b"!HH%dsx" % (len(self.buffer)-5)         self.opcode, self.errCode, self.errMsg = struct.unpack(frmt, self.buffer)     return self 

Sé que tendré muchos fallos, asi que me disculpo. Todavía tengo que modificar algunas cosas, pero si no arreglo esto no creo que pueda ejecutarlo.

Siento las molestias, muchas gracias.

Usar Variables con la posibilidad de ser indefinidas sin tener errores en PHP

Tengo un formulario donde a veces aparece un campo y otras veces no, y desde la validación con PHP necesito almacenar todos los valores de los campos en variables.

Entonces, no puedo hacer esto porque aparecería un error:

$  nombre = $  _POST['nombre']; 

Pero tampoco quiero hacer esto porque son muchos los campos y me gustaría hacerlo de una forma más eficiente si es posible:

if (isset($  _POST)) {     $  nombre = $  _POST['nombre']; } 

¿Hay alguna alternativa que por ejemplo deje la variable con NULL (por ejemplo) si el campo no existe y de una forma más eficiente?

FPDF arroja errores en localhost


tengo este error al tratar de mostrar el pdf de reporteproductos.php, este hace un include a plantilla.php y platilla.php requiere de fpdf.php para mostrar el reporte, todo esta corriendo en localhost, hace tiempo tuve el mismo error en 000webhost y se soluciono al darle permisos 644, pero no se como solucionarlo en esta ocasion.

   Warning: A non-numeric value encountered in C:\xampp\htdocs\SIGEF\modelo\pdf\fpdf\fpdf.php on line 580      Warning: A non-numeric value encountered in C:\xampp\htdocs\SIGEF\modelo\pdf\fpdf\fpdf.php on line 580      Warning: A non-numeric value encountered in C:\xampp\htdocs\SIGEF\modelo\pdf\fpdf\fpdf.php on line 580      Warning: A non-numeric value encountered in C:\xampp\htdocs\SIGEF\modelo\pdf\fpdf\fpdf.php on line 580      Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in C:\xampp\htdocs\SIGEF\modelo\pdf\fpdf\fpdf.php:271 Stack trace: #0 C:\xampp\htdocs\SIGEF\modelo\pdf\fpdf\fpdf.php(1063): FPDF->Error('Some data has a...') #1 C:\xampp\htdocs\SIGEF\modelo\pdf\fpdf\fpdf.php(999): FPDF->_checkoutput() #2 C:\xampp\htdocs\SIGEF\modelo\pdf\reportedispo.php(56): FPDF->Output() #3 {main} thrown in C:\xampp\htdocs\SIGEF\modelo\pdf\fpdf\fpdf.php on line 271 

Este es el codigo en plantilla.php

<?php      session_start();      require 'fpdf/fpdf.php';      class PDF extends FPDF     {         function Header()         {             //$  this->image('images/sen2.png', 10, 10,50);             $  this->Image('images/sen2.png' , 10, 10,50);             $  this->SetFont('Arial','B',15);             $  this->Cell(50,'','',0);             $  this->Cell(140,5,'BOUTIQUE MARIA FERNANDA',0,1,'R');             $  this->SetFont('Arial', 'B', 11);             $  this->Cell(50,'','',0);             $  this->Cell(140,5,'NIT 900354851-5',0,1,'R');             $  this->Cell(50,'','',0);             $  this->Cell(140,5,'Hoy: '.date('d-m-Y').'',0,1,'R');             $  this->Cell(50,'','',0);             $  this->Cell(140,5,'Usuario|'.$  _SESSION['usuario'].'',0,1,'R');             $  this->Ln(5);             }          // function Footer()         // {         //  $  this->SetY(-15);         //  $  this->SetFont('Arial','I',8);         //  $  this->Cell(0,10,'Pagina '$  this->PageNo().'/{nb}',0,0,'C');          // }         function Footer()         {             //Footer de la pagina             $  this->SetY(-15);             $  this->SetFont('Arial','I',8);             $  this->SetTextColor(128);             $  this->Cell(0,10,'Pagina '.$  this->PageNo(),0,0,'C');         }       }   ?> 

este es reporteproductos.php y desde aqui se llama a plantilla para mostrar el reporte de productos:

<?php                    include 'plantilla.php';         require 'config.php';          $  sql="SELECT * FROM  tb_productos ORDER BY cod_producto ASC ";         $  resultado = $  conexion->query( $  sql );          $  pdf= new PDF();         // $  pdf->AliasNbPage();         $  pdf->AddPage();         $  pdf->Cell(120,10,'Reporte de Productos ',0,1,'L');         $  pdf->SetFillColor(232,232,232);         $  pdf->SetFont('Arial','B',12);          $  pdf->Cell(25,6,'CODIGO',1,0,'C',1);         $  pdf->Cell(65,6,'NOMBRE',1,0,'C',1);          $  pdf->Cell(50,6,'PRECIO DE COMPRA',1,0,'C',1);         $  pdf->Cell(50,6,'FECHA DE REGISTRO',1,1,'C',1);          $  pdf->SetFont('Arial','',10);          while ($  row = $  resultado->fetch_assoc())         {             $  pdf->Cell(25,6,$  row['cod_producto'],1,0,'C');             $  pdf->Cell(65,6,utf8_decode($  row['descripcion']) ,1,0,'C');              $  pdf->Cell(50,6,$  row['precio_compra'],1,0,'C');             $  pdf->Cell(50,6,$  row['fecha_registro'],1,1,'C');         }          $  pdf->Output();  ?> 

De antemano gracias por su tiempo y colaboración, disculpen la molestia.

Npm Run Dev errores con Laravel Mix

Estoy trabajando con Laravel 5.6 y VUE.

Al ejecutar NPM RUN DEV tengo problemas en consola que no logro resolver. Ya intenté creando un nuevo proyecto y pasando mis archivos a ese nuevo pero el error persiste.

Actualicé NODE, e intenté todo esto:

Consola como Administrador – Windows.

Eliminé carpeta node_modules y reinstalé con npm install save. No solucionó nada.

Eliminé carpeta node_modules, limpié caché de node, instalé cross-env de esta forma: npm install –global cross-env. Y después ejecute la instalación npm install –no-bin-links.

Eliminé carpeta node_modules, limpié caché de node, eliminé package-lock.json, instalé npm install –global cross-env y npm install –no-bin-links.

Pero nada de esto ha funcionado. Adjunto captura del error en consola:

Error

Me manda errores al hacer una consulta

public void insert(int Matricula, String Color,Double Precio,String Marca,String Modelo) {    try    {          String Query = "INSERT INTO coche(matricula,precio,color,marca,modelo) VALUES (?,?,?,?,?)";         PreparedStatement pstmt = cn.prepareStatement(Query);         pstmt.setInt(1, Matricula);         pstmt.setDouble(2, Precio);         pstmt.setString(3, Color);         pstmt.setString(4, Marca);         pstmt.setString(5, Modelo);         pstmt.executeUpdate();         pstmt.close();     } catch (SQLException e){         System.out.println(e.getMessage());    } } 

Lo uso así

con.insert(matri, color, precio, marca, modelo);

Muchas gracias

Base de datos de errores

Me gustaría crear una base de datos donde almacenar todos los tipos de errores existentes con su respectivo código.

Mi intención con esto es ver que opina la comunidad, como podría desarrollarla de forma eficiente y si es que quieren aportar al desarrollo de esta idea con datos para llenar esta base de datos.

Estoy atento a sus comentarios.

De momento se compone de 4 tablas:
1. Errores: en donde estaría el código de error junto a una descripción mínima
2. Idioma: diferentes idiomas de donde solo rescataremos su id
3. Tipo de errores: donde definiremos el tipo de error que mostraremos
4. Errores descripción:
4.1 error según su id
4.2 idioma según el id de esta tabla
4.3 tipo de error según el id de esa tabla
4.4 descripción

Mi idea es poder guardar descripciones en diferentes idiomas y si es que quieren agregar errores personalizados, que se puedan hacer en esa misma tabla.