Заикание при воспроизведении java vlcj расширяющихся файлов wav - PullRequest
0 голосов
/ 04 августа 2020

Я использую vlcj в java для воспроизведения файлов wav, которые расширяются другими службами. Моя проблема заключается в следующем:

, когда я открываю аудиофайл, плеер знает, что продолжительность x se c. Если он достигает конца, он должен повторно открыть (player.controls().start()) файл, чтобы узнать увеличенную продолжительность. Этот перезапуск вызывает микропробег при воспроизведении (например, 0,1 секунды), но его можно услышать, и если процесс расширения медленный, то заикание может происходить каждые 2 секунды.

У меня нет возможности изменить базовый архитектура, поэтому я не могу использовать потоковую передачу. проиграл аудиофайл (вероятно, он загружает его в память при открытии, я думаю).

Кто-нибудь пробовал успешно реализовать такой вид воспроизведения?

1 Ответ

1 голос
/ 07 августа 2020

После продолжительного исследования топи c я пришел к выводу, что воспроизведение без заиканий при описанной выше настройке не может быть достигнуто. Его можно значительно оптимизировать, но никогда не будет идеальным. Проблема root в том, что длину (продолжительность) проигрываемого файла wav нельзя установить вручную, поэтому для повторного сканирования необходима перезагрузка.

Мое решение для этого заключалось в том, чтобы реализовать live555 Сервер потоковой передачи RTSP между хранилищем и клиентом. Проигрыватель vlcj подключается к потоку rtsp и без проблем воспроизводит (расширяющийся) файл. Недостатки в том, что время воспроизведения требует специальной обработки c и имеет меньшую производительность (более медленный отклик на события).

...