Занялся написанием небольшой игрушки и вот добравшись до музыкально-звуковой составляющий столкнулся с проблемой.
QMediaPlayer *bulletSound = new QMediaPlayer();
bulletSound->setMedia(QUrl("qrc:/rsc/sounds/bullet.mp3"));
if (bulletSound->state() == QMediaPlayer::PlayingState) {
bulletSound->setPosition(0);
} else if (bulletSound->state() == QMediaPlayer::StoppedState) {
bulletSound->play();
}
Этот звуковой файл должен воспроизводиться всякий раз, когда игрок делает выстрел. И он воспроизводится, но когда снаряд пролетит уже приличное расстояние. Имеет место быть какая-то задержка. Как свести ее к минимуму?
Делается через предзагрузку. Ваши файлы просто читаете в буферы, которые где-то размещаете в памяти, при вызове метода стрельбы соответственно вызываете
QBuffer tmp(&bullet_sound_array);
mediaPlayer.setMedia(QMediaContent(), &tmp);
mediaPlayer.play();
В этом примере надо следить, чтобы tmp буфер существовал до конца воспроизведения, поэтому лучше сразу после чтения перегонять QByteArray в QBuffer
Также можно попробовать разместить аудио файлы в .qrc файле, но это раздует .ехе до неимоверных размеров.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Не могу красиво выйти из цикла используя break внутри switch, успевает сработать только один разпробовал еще return; но он выкидывает в такую далину...
Около месяца изучаю C++, несколько дней пытаюсь отладить кодОшибка, наверное, очевидная для бывалых, всё никак не находится
Хочу, чтобы выводилось значение переменной aЕсли введенное число больше 5 - вывести 5, иначе 4
В Microsoft Visual Studio есть встроенный дебаггер, который позволяет дизассемблировать выполняемый файл и ходить по строчкам ассемблера пошагово