디버깅하기가 어려워서 문제가 있습니다. 내 프로그램은 수시로 사운드를 재생해야합니다 (종종 여러 사운드 파일을 동시에 겹치는 경우가 많습니다). 나는 주로 Mac에서 개발하고, Mac 빌드는 잘 작동하지만 (Qt에 포함 된 macdeployqt 유틸리티를 사용하여 패키지화), Windows 빌드는 컴파일 된 컴퓨터에서만 사운드를 재생합니다. 내가 시험해보기 위해 선적 한 모든 사람들은 아무 소리도 내지 못했다. (나는 소리 파일을 정확하게 찾는다는 것을 확인 했음에도 분명히 그렇게하지 않았다.)배포시 QSoundEffect로 사운드가 재생되지 않습니다.
(메인 화면 생성자에서 호출) 시작에이 같은 각 파일로드 : SoundsList가 QList<QSoundEffect *>
입니다
QSoundEffect *tmpSfx = new QSoundEffect();
QUrl pathAsURL;
pathAsURL = pathAsURL.fromLocalFile(fileList.at(i).absoluteFilePath());
if (tmpSfx)
{
qDebug() << "path" << pathAsURL;
tmpSfx->setSource(pathAsURL);
tmpSfx->setLoopCount(1);
tmpSfx->setVolume(0.4);
// tmpSfx->play();
qDebug() << "is loaded" << tmpSfx->isLoaded();
SoundsList.append(tmpSfx)
합니다. 나는 사운드를 재생해야하는 경우
그럼, 내가 전화 : 창에
SoundsList.at(SoundIndex)->play();
내가 필요한 모든 Qt는 DLL의 그것과 함께 함께 zip 파일로 응용 프로그램을 배포하고 있습니다. 적어도 모든 Qt DLL은 내가 이라고 생각하면이 필요합니다.
Qt5Core.dll
Qt5Gui.dll
Qt5Multimedia.dll
Qt5Network.dll
Qt5Widgets.dll
icudt52.dll
icuin52.dll
icuuc52.dll
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
platforms\qwindows.dll
내가 뭘 놓치고 있습니까?
빌드 할 때 사용하는 컴퓨터에서 실행하면 정상적으로 작동합니다. 같은 폴더에 DLL이없는 동일한 컴퓨터에서 실행될 때 Qt Creator에서 실행하지 않으면 실패합니다. Qt Creator에서 실행하지 않으면 이러한 DLL의 대부분에서 종속성을 찾았습니다. 다른 Windows 컴퓨터에서 실행하면 오류없이 정상적으로 실행되지만 소리 출력도 없습니다.
Qt 5.2로 작성되었으며 Creator 및 MinGW를 사용하여 작성되었습니다.
아마도 누락 된 DLL과 관련이 있습니다. 이전에이 프로그램을 사용한 적은 없지만 실행 파일 폴더에 audio/qtaudio_windows.dll을 포함시켜보십시오. (Qt의 plugins 디렉토리에 존재합니다) –