играть .wav с QSound (Qt) звука нет - PullRequest
0 голосов
/ 31 августа 2011

Я пытался воспроизвести файл .wav в Qt, используя QSound::play

Я пробовал этот код:

QSound::play("airplane.wav");

Нет ошибок при сборке, но при запуске нет звука?!

Ответы [ 2 ]

1 голос
/ 01 сентября 2011

Мне позвонили, и я нашел код, который я использую для обработки звуков. Наша платформа - Windows, так что это то, что у нас работает. Я завернул все это в класс игрока. В моих заметках говорилось, что QSound хочет иметь абсолютные пути в формате платформы (что можно узнать, изучив код QSound). Поэтому попробуйте получить путь к файлу примерно так:

// (note the "sSoundPath" variable is set to where we store our sound files).
static const QString sSoundPath("./resources/sounds/");

в другом месте ...

//  QSound wants absolute paths, in platform format

QFileInfo fileInfo(soundFile);

if (fileInfo.isRelative())
{
    //  we assume one of our own sound files in a relative path
    fileInfo.setFile(sSoundPath + soundFile);
    fileInfo.makeAbsolute();
}

if (!fileInfo.exists())
{
    return false;
}

mSoundFile = QDir::toNativeSeparators(fileInfo.filePath());

Теперь вы можете попытаться воспроизвести звуковой файл.

0 голосов
/ 05 января 2013

Я потратил бесчисленное количество дней на подобную проблему. По сути, я обнаружил, что QSound не поддерживает волновые файлы с частотой дискретизации 44100 Гц. Проверьте мое открытие на QT5 QSound не воспроизводит все волновые файлы

Дополнительное замечание: QSound не поддерживает ресурсы QT, если вы используете их. Обходной путь - скопировать ресурс в файл, а затем воспроизвести этот файл с помощью QSound с жесткого диска. Надеюсь, эта информация поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...