Extraer el archivo Big Wav en fragmentos más pequeños en Java

Tengo un gran archivo wav que me gustaría incluir en fragmentos más pequeños. También tengo un archivo .cue que tiene la longitud de la velocidad de fotogramas, en la que deberían estar los fragmentos más pequeños. Descubrí cómo dividir el wav, pero todos los archivos wav que se hacen tienen el mismo sonido. Parece que cada vez que creo un nuevo wav, el gran archivo wav comienza desde el principio y hace que la nueva onda tenga la longitud correcta pero el mismo sonido.

Creo que necesito una forma de leer el wav en un marco específico, luego escribir en un archivo, luego continuar leyendo y escribir en otro archivo, etc.

He estado en esto durante horas y parece que no puedo entenderlo. Cualquier ayuda sería muy apreciada. Aquí está mi código, todo lo comentado es mi código incorrecto que he estado intentando.

 int count2 = 0;
  int totalFramesRead = 0;
        //cap contains the how many wav's are to be made
        //counter contains the vector position.
        String wavFile1 = "C:\\Users\\DC3\\Desktop\\wav&text\\testwav.wav";
            //String wavFile2 = "C:\\Users\\DC3\\Desktop\\waver\\Battlefield.wav";
            while(count2 != counter){
            try {
                    AudioInputStream clip1 = AudioSystem.getAudioInputStream(new File(wavFile1));
                    int bytesPerFrame = clip1.getFormat().getFrameSize();
                    //System.out.println(bytesPerFrame);
//                     int numBytes = safeLongToInt(clip1.getFrameLength()) * bytesPerFrame; 
//                     byte[] audioBytes = new byte[numBytes];
//                     int numBytesRead = 0;
//                     int numFramesRead = 0;
//                     // Try to read numBytes bytes from the file.
//                     while ((numBytesRead = 
//                       clip1.read(audioBytes)) != -1) {
//                       // Calculate the number of frames actually read.
//                       clip1.read(audioBytes)
//                       numFramesRead = numBytesRead / bytesPerFrame;
//                       totalFramesRead += numFramesRead;
//                       System.out.println(totalFramesRead);
//                     }

                    long lengthofclip = Integer.parseInt(time.get(count2))- silence;

                    globallength = clip1.getFrameLength();
                    AudioInputStream appendedFiles = new AudioInputStream(clip1, clip1.getFormat(), lengthofclip);
                    //long test = (appendedFiles.getFrameLength() *24 *2)/8;
                    //int aaaaa = safeLongToInt(test);
                    //appendedFiles.mark(aaaaa);
                    AudioSystem.write(appendedFiles, 
                            AudioFileFormat.Type.WAVE, 
                            new File("C:\\Users\\DC3\\Desktop\\wav&text\\" + name.get(count2)));
                            count2++;
            } catch (Exception e) {
                    e.printStackTrace();
            }
        }
  }
  public static int safeLongToInt(long l) {
    if (l < Integer.MIN_VALUE || l > Integer.MAX_VALUE) {
        throw new IllegalArgumentException
            (l + " cannot be cast to int without changing its value.");
    }
    return (int) l;
}
Respuesta 1

Revisé un proyecto maven e importé a mi Eclipse (Indigo) con integración maven a través del complemento m2eclipse. Configuré el proyecto como un proyecto maven. Cuando haga clic en mi proyecto y haga clic en ...

antes de haber estado usando etiquetas de tiempo de renderizado (como a4j: repeat, ui: repeat), para crear paneles basados ​​en una colección de elementos. Todo eso cambió y ahora debo usar c: forEach en su lugar. En cada panel hago un ...

Tenía cierta confusión sobre dónde debería poner el inicio de sesión comercial entre Model y Presenter. Algunos tutoriales dicen que el modelo tiene inicio de sesión comercial y otros dicen que el modelo es solo POJO.

He agregado botones en GridView usando el adaptador base, que los botones dependen de la longitud de la palabra al hacer clic en el botón y luego ocultar. Después de hacer clic en todos los botones, GridView se vacía, quiero comprobar si ...