Russian Qt Forum
Ноябрь 22, 2024, 03:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Got a buffer underflow!  (Прочитано 6190 раз)
Evil_Genius
Гость
« : Октябрь 12, 2015, 09:18 »

После каждого воспроизведения звукового фрагмента с использованием QAudioOutput в Application Output получаю сообщение: "Got a buffer underflow!". Из-за чего оно может появляться?
Записан
Evil_Genius
Гость
« Ответ #1 : Октябрь 13, 2015, 15:55 »

Код, вызывающий сообщение:
Код:
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile file;
    file.setFileName("/home/path/to/file/1.wav");
    file.open(QIODevice::ReadOnly);
    QByteArray ba = file.readAll();
    QAudioFormat outputFormat;
    outputFormat.setSampleRate(44100);
    outputFormat.setChannelCount(1);
    outputFormat.setSampleSize(16);
    outputFormat.setCodec("audio/pcm");
    outputFormat.setByteOrder(QAudioFormat::LittleEndian);
    outputFormat.setSampleType(QAudioFormat::SignedInt);
    QAudioOutput* player = new QAudioOutput(outputFormat);
    QBuffer buffer(&ba);
    buffer.open(QIODevice::ReadOnly);
    player->start(&buffer);
    QEventLoop audioLoop;
    QObject::connect(player, SIGNAL(stateChanged(QAudio::State)), &audioLoop, SLOT(quit()));
    do{
        audioLoop.exec();
    }while(player->state() == QAudio::ActiveState);
    buffer.close();
    delete player;
    return 0;
}
« Последнее редактирование: Октябрь 13, 2015, 16:38 от Evil_Genius » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 20.