crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QAudioOutput, Щелчок при проигрывании
Hardcode
  опции профиля:
сообщение 10.4.2011, 12:54
Сообщение #1


Новичок


Группа: Неактивирован
Сообщений: 4
Регистрация: 3.4.2011
Пользователь №: 2569

Спасибо сказали: 0 раз(а)




Репутация:   0  


В общем, в свой небольшой проект решил добавить поддержку звуковых сигналов. Написал маленький класс, который в свою очередь использует QAudioOutput.
И вроде бы все прекрасно, но при вызове метода start перед началом воспроизведения и stop по окончании слышен негромкий, но довольно неприятных щелчок.

Часть кода:
Player::Player()
{
    QAudioFormat format;
    format.setFrequency(22050);
    format.setChannels(2);
    format.setSampleSize(16);
    format.setCodec("audio/pcm");
    format.setByteOrder(QAudioFormat::LittleEndian);
    format.setSampleType(QAudioFormat::SignedInt);
    output = new QAudioOutput(format);
    connect(output, SIGNAL(stateChanged(QAudio::State)), SLOT(finished(QAudio::State)));
}

void Player::play(QIODevice& source)
{
    output->start(&source);
}

void Player::finished(QAudio::State state)
{
    if (state == QAudio::IdleState) {
        output->stop();
    }
}


Для начала проигрывания я передаю в метод play файл, при окончании вызывается finished.
Возможно ли как-либо избавиться от этих щелчков или хотя бы работать с QAudioOutput так, чтобы ресурсы выделялись только при запуске и завершении программы, а не при каждом вызове start?
Система - Linux x86_64, Qt 4.7
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Hardcode
  опции профиля:
сообщение 16.4.2011, 10:52
Сообщение #2


Новичок


Группа: Неактивирован
Сообщений: 4
Регистрация: 3.4.2011
Пользователь №: 2569

Спасибо сказали: 0 раз(а)




Репутация:   0  


Ну насколько я понял, это никак не лечится.
Проблему я решил использованием SDL_sound, как кто-то в соседней теме.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 21:43