2013-01-12 6 views
5

나는 Qt5 (Qt4 마이그레이션)에서 사운드를 재생하는 방법은 무엇입니까? QT4에서

QT += multimedia phonon 
//... 
#include <Phonon> 
//... 
     Phonon::MediaObject *mediaObject = Phonon::createPlayer(Phonon::NoCategory, Phonon::MediaSource(QUrl("./assets/audio/window_appear.wav"))); 
     // "\"" + Qdir().absolutePath() + "/audio/click.wav" + "\"" 
     mediaObject->play(); 

을 사용하는 데 사용하고 모든 괜찮 았는데. 하지만 지금 Phonon is not supported in Qt 5. 그래서 Qt5에서 어떻게 사운드와 같은 미디어 파일을 재생할 수 있습니까?

WebKit을 사용하고 계십니까?

+0

http://qt-project.org/doc/qt-5.0/qtmultimedia/multimediaoverview.html :

"자세한 정보"에서 their documentation 내에서 나열된

는 오디오 파일을 재생하는 것은 다음과 같이 보입니다 – Mat

답변

5

Qt 개발자는 Qt Multimedia 및 Qt Mobility 모듈을 집중적으로 다루는 대신 Qt4 이후 버전에서 이미 Phonon 통합에 대한 노력을 줄이기 시작했습니다. 그들은 여전히 ​​포논 (Phonon)을지지했지만.

Qt5 현재 Phonon은 더 이상 지원되지 않습니다. 대신 Qt Multimedia을 확인하십시오. 특히 QAudioOutput.

QFile inputFile;  // class member. 
QAudioOutput* audio; // class member. 
inputFile.setFileName("/tmp/test.raw"); 
inputFile.open(QIODevice::ReadOnly); 

QAudioFormat format; 
// Set up the format, eg. 
format.setFrequency(8000); 
format.setChannels(1); 
format.setSampleSize(8); 
format.setCodec("audio/pcm"); 
format.setByteOrder(QAudioFormat::LittleEndian); 
format.setSampleType(QAudioFormat::UnSignedInt); 

QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); 
if (!info.isFormatSupported(format)) { 
    qWarning()<<"raw audio format not supported by backend, cannot play audio."; 
    return; 
} 

audio = new QAudioOutput(format, this); 

connect(audio,SIGNAL(stateChanged(QAudio::State)),SLOT(finishedPlaying(QAudio::State))); 
audio->start(&inputFile);