ByteBufferAsShortBuffer no se puede convertir en java.nio.FloatBuffer

Tengo el siguiente error al ejecutar proyecto. ¿Puede alguien ayudarme?

Java.lang.ClassCastException: java.nio.ByteBufferAsShortBuffer no se puede convertir en java.nio.FloatBuffer

Aquí está mi código:

Buffer[] samples = frame.samples; if (aaD.track.getChannelCount() == 1) //For using with mono track { Buffer b = samples[0]; fb = ((ByteBuffer) b.rewind()).asFloatBuffer();//here is error fb.rewind(); smpls = new float[fb.capacity()]; fb.get(smpls); } 

Por favor ayuda

Así que la solución no era tan elegante como había pensado. Veo por qué preguntaste. No pude encontrar una manera de hacer lo que quieres hacer sin asignar memoria extra.

Esta es una manera rápida y sucia de mover el ShortBuffer a un FloatBuffer .

  public FloatBuffer fBuffer(){ ShortBuffer sb = ShortBuffer.allocate(4); sb.put(new short[]{256,256,128,64}); short[] shortArr = sb.array(); ByteBuffer bb = ByteBuffer.allocate(shortArr.length * 2); bb.asShortBuffer().put(shortArr); return bb.asFloatBuffer(); } 

Si el rendimiento es crítico y estás haciendo muchas de estas operaciones, es una buena idea buscar utilizando código nativo (C / C ++) para manipular bytes directamente o usar algo como Renderscript.

  • Cómo llamar a strings.xml en arraylist
  • Descarga de archivos PDF con BlockingQueue
  • Problema que coincide con el patrón regex en Android
  • No se puede crear APK con 'com.google.android.gms: play-services: 9.4.0'
  • ¿Cómo correctamente y consistentemente se burlan de la ubicación en Android?
  • La vista de lista de Android enruta contenido hasta un tamaño determinado basado en el tamaño de pie de página
  • Problema de análisis de Json (valores cambiados automáticamente flotante)
  • ¿Cómo instanciar el servicio android con un constructor?
  • Obtener json de HttpResponse
  • ¿Cómo paso un contexto a un AsyncTask?
  • Usando secciones con fragmentos, NullPointerException
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.