2013-01-12 28 views
5

Trong Qt4 tôi đã từng sử dụngLàm thế nào để phát âm thanh trong Qt5 (di chuyển Qt4)?

và tất cả đều hoạt động tốt. Nhưng bây giờ Phonon is not supported in Qt 5. Vì vậy, tôi tự hỏi - làm thế nào tôi có thể chơi các tập tin media như âm thanh trong Qt5?

Sử dụng WebKit? (Nó hoàn toàn có thể nhưng có vẻ xấu từ nhiều quan điểm)

+0

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

Trả lời

5

Các nhà phát triển Qt bắt đầu giảm nỗ lực tích hợp Phonon trong các phiên bản sau của Qt4, tập trung vào mô-đun Qt Multimedia và Qt Mobility thay thế. Mặc dù họ vẫn ủng hộ Phonon.

Như bạn nói, kể từ Qt5, Phonon không còn được hỗ trợ. Vì vậy, hãy xem xét Qt Multimedia thay thế, đặc biệt là QAudioOutput.

Như liệt kê trong their documentation dưới "Mô tả chi tiết", chơi một tập tin âm thanh trông giống như sau:

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); 
Các vấn đề liên quan