Мастерим приложение с участием libvlc.
Требуется показать volume meter.
Возможно есть способы получения готового уровня для volume meter, но найти их не удалось.
Вероятно, уровень для volume meter нужно вычислять по аудиобуферу. Но для начала этот буфер нужно получить.
Один из найденных способов - установить callback libvlc_audio_set_callbacks(player, AudioPlayerCallback, NULL, ...)
.
Но тогда звук придется проигрывать самостоятельно, т.к. vlc звук больше не воспроизводит. Отпадает.
Второй способ - использовать smem с дублированием потока.
#duplicate{dst=display,dst="transcode{acodec=s16l}:smem{audio-postrender-callback=%lld,audio-prerender-callback=%lld,video-postrender-callback=%lld,video-prerender-callback=%lld,audio-data=%lld,video-data=%lld}"}
Прекрасно, буфер получили, средний уровень посчитали, показали. Работает.
Но есть пара неприятных моментов.
Отклик на нажатие кнопок «Pause» и «Play» около секунды. Это неприемлемо.
На некоторых роликах после нажатия паузы продолжает циклически воспроизводиться закэшированый звук.
Тупик.
Вероятно, мы что-то пропустили.
Есть ли другие способы получить аудиобуфер, а лучше готовые уровни для volume meter?
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Проблема записи звука с ip камеры с помощью vlc (2013)
- Форум volume meter: звук есть, в наушниках звука нет (2021)
- Форум vlc libvlc (2011)
- Форум mouse meter (2008)
- Форум KDE и индикатор уровня подсветки (2011)
- Форум Простой traffic meter (2008)
- Форум Digest Authentication с помощью libvlc (2014)
- Форум VLC. Получение rtsp потока (2014)
- Форум В SMPlayer перестал показываться экранный индикатор уровня громкости (2014)
- Форум индикаторы (2007)