Здравствуйте, гость ( Вход | Регистрация )
eg015t | Дата 15.6.2015, 16:51 |
mezmay, на чем порешили в конце? понимаю, конечно, что уже не актуальная тема. просто сам столкнулся сейчас |
|
Iron Bug | Дата 17.12.2012, 13:49 |
всё, что я видела опенсорцного для работы со звуком в сети в реальном времени, было написано через VLC. я не могу сказать наверняка, но у меня нет уверенности, что Qt вообще заточена под такие задачи. тут же где-то пиарили какую-то библиотеку для работы с потоками звука. вот буквально недавно. может, тебе стоит посмотреть в сторону специфических риалтаймовских библиотек. |
|
mezmay | Дата 17.12.2012, 8:37 |
up | |
mezmay | Дата 15.12.2012, 12:52 |
Как известно, в Qt для воспроизведения звука предназначен класс QAudioOutput. Стартовать воспроизведение можно двумя способами: и .Первый возвращает QIODevice, в который можно писать данные с момощью write, а второй стартует воспроизведение, считывая звук из переданного в него QIoDevice. Ситуация: По сокетам приходят звуковые буфера. Все вместе взятые она содержат непрерывный звук, ~по 0.5 секунды в каждом буфере. Но приходят они не точно раз в пол секунды, а неравномерно. Когда пользовались первым способом, звук сильно разрывался, откуда можно сделать вывод, что такой способ некорректно добавляет данные к воспроизводимым. Для того чтобы пользоваться вторым способом, должен быть все время заполненный QIODevice. Вот как сделал я:
Но судя по всему в этом случае будет наступать переполнение буфера. Вопросы: 1. Как избежать переполнения буфера 2. Как вообще нормальным способом непрерывно воспроизводить звук на Qt? (то есть сделать чтобы приходящий новый буфер либо шел сразу на воспроизведение, либо аппендился к уже воспроизводящемуся) |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 25.4.2024, 1:08 |