5

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();

そしてそれはすべてうまくいきました。しかし、現在、フォノンはQt 5ではサポートされていません。では、Qt5でサウンドなどのメディアファイルを再生するにはどうすればよいでしょうか。

WebKitを使用していますか?(それは完全に可能ですが、多くの観点からは少し悪いように見えます)

4

1 に答える 1

5

Qt開発者は、Qt4の新しいバージョンで、フォノン統合への取り組みを減らし始め、代わりにQtマルチメディアモジュールとQtモビリティモジュールに焦点を合わせました。彼らはまだフォノンをサポートしていましたが。

おっしゃるように、Qt5以降、Phononはサポートされなくなりました。したがって、代わりにQtマルチメディア、特に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);
于 2013-01-12T18:12:39.790 に答える