Я хочу воспроизвести определенные части wav-файла. Как играть в первые десять секунд, а затем играть с 50-60-й секунды и так далее. Я знаю, как играть весь волновой файл в Java, используя метод start SourceDataLine
. Может ли кто-нибудь дать мне несколько указаний о том, как я могу найти конкретную временную позицию для аудио и играть в нее?Воспроизведение определенной части большого wav-файла
1
A
ответ
0
- Найти длину кадра в байтах от
AudioFormat
- Найти длину в байтах секунды, путем умножения размера кадра на частоте кадров.
skip()
это количество байт.- Воспроизведение до 2-го числа байтов, рассчитанных по той же формуле.
0
Насколько я вижу, ничего не происходит, когда вы просто звоните start
. Вы несете ответственность за , нажимая байты вашего выбора в линию. Итак, откройте RandomAccessFile
, найдите подходящее смещение и выполните цикл, который переносит данные файла на SourceDataLine
.
+0
спасибо. Ваш ответ дал мне хорошее начало. – BuzzLightYear
Это именно то, что я сделал после того, как получил от Марко ответ. Спасибо, что записал это поэтапно. – BuzzLightYear