Я создал кольцевой буфер байтов в Java на основе нескольких существующих ресурсов и учебных пособий.Я использую линейный буфер Java-звука и записываю в большой 5-секундный кольцевой буфер.
Для одной из моих функций я хотел бы прочитать из циклического буфера за несколько мс до текущей позиции записи, а не из начальной точки циклического буфера.Как мне этого добиться?
В настоящее время я читаю из буфера, используя:
double[] readFromBuffer = new double[halfWindowSize];
input.circ.read(readFromBuffer, 0, halfWindowSize, true);
Я понимаю, что где 0, это смещение, но не уверен, как это используется.Похоже, я хочу запросить текущую позицию записи в буфере, а затем обновить позицию чтения с отрицательным смещением х байтов (однако многие равны нескольким мс).Это должно быть сделано вне моего цикла, так как я затем продолжаю чтение из буфера в цикле.
В настоящее время, когда я начинаю чтение, это начинается в начале буфера, что при построении графиков может привести к задержке до 5 секунд на входе слишком вывода, что слишком велико и заставляет программное обеспечение казаться медленным.
Любая помощь будет оценена, спасибо.