int main(int argv, char **args) { QApplication app(argv, args); app.setApplicationName("Audio effect tester"); Phonon::MediaObject *mediaObject = new Phonon::MediaObject; mediaObject->setCurrentSource(QString("/home/gvatteka/Music/Lumme-Badloop.ogg")); Phonon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory); //! [0] QList<Phonon::EffectDescription> effectDescriptions = Phonon::BackendCapabilities::availableAudioEffects(); Phonon::EffectDescription effectDescription = effectDescriptions.at(4); Phonon::Path path = Phonon::createPath(mediaObject, audioOutput); //! [1] Phonon::Effect *effect = new Phonon::Effect(effectDescription); path.insertEffect(effect); //! [0] Phonon::EffectWidget *effectWidget = new Phonon::EffectWidget(effect); effectWidget->show(); //! [1] mediaObject->play(); effectWidget->setWindowTitle("Effect Name: " + effectDescription.name()); app.exec(); }
Window::Window() { { //![0] Phonon::MediaObject *music = Phonon::createPlayer(Phonon::MusicCategory, Phonon::MediaSource("/path/mysong.wav")); music->play(); //![0] } { QWidget *parentWidget = new QWidget; QUrl url("Myfancymusic"); //![1] Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory, parentWidget); player->play(url); //![1] } { //![2] Phonon::MediaObject *mediaObject = new Phonon::MediaObject(this); mediaObject->setCurrentSource(Phonon::MediaSource("/mymusic/barbiegirl.wav")); Phonon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this); Phonon::Path path = Phonon::createPath(mediaObject, audioOutput); //![2] //![3] Phonon::Effect *effect = new Phonon::Effect( Phonon::BackendCapabilities::availableAudioEffects()[0], this); path.insertEffect(effect); //![3] } { //![4] Phonon::MediaObject *mediaObject = new Phonon::MediaObject(this); Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget(this); Phonon::createPath(mediaObject, videoWidget); Phonon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory, this); Phonon::createPath(mediaObject, audioOutput); //![4] //![5] mediaObject->play(); //![5] } }
MediaOutput::MediaOutput() : totalTimeInMSec(0) , prefinishMark( 0 ) , currentVolume( 1.0 ) , m_audioOutput( Phonon::MusicCategory, this ) , m_mediaFader() { m_mediaFader.setFadeCurve( Phonon::VolumeFaderEffect::Fade12Decibel ); Phonon::Path path = Phonon::createPath( this, &m_audioOutput ); fadingAvailable = path.insertEffect( &m_mediaFader ); tDebug() << "Connect media output " << &m_audioOutput; connect( &m_audioOutput, SIGNAL( volumeChanged( qreal ) ), SLOT( onVolumeChanged( qreal ) ) ); connect( this, SIGNAL( tick( qint64 ) ), SLOT( checkPrefinishMark( qint64 ) ) ); blockSignals( true ); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Phonon::MediaObject *mediaObject = new Phonon::MediaObject(this); mediaObject->setCurrentSource(Phonon::MediaSource("../myPhonon1/mysong.mp3")); Phonon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this); Phonon::Path path = Phonon::createPath(mediaObject, audioOutput); mediaObject->play(); // 获取可用的音频效果的描述 QList<Phonon::EffectDescription> effectDescriptions = Phonon::BackendCapabilities::availableAudioEffects(); qDebug() << effectDescriptions; Phonon::EffectDescription effectDescription = effectDescriptions.at(5); // 使用指定的音频效果的描述来创建音频效果 Phonon::Effect *effect = new Phonon::Effect(effectDescription); // 在路径中插入音频效果 path.insertEffect(effect); // 创建效果部件,它可以用来更改效果中的参数 Phonon::EffectWidget *effectWidget = new Phonon::EffectWidget(effect); effectWidget->show(); }