1
請考慮以下代碼。Phonon :: Path and Phonon ::即使它們被破壞,效果也會繼續工作
class MainWindow
{
// ...
Phonon::MediaObject media;
Phonon::AudioOutput audio_output;
};
MainWindow::MainWindow() : audio_output(MusicCategory)
{
//...
QList<EffectDescription> effects =
BackendCapabilities::availableAudioEffects();
media.setCurrentSource(MediaSource("../test.wma"));
Path path = createPath(&media, &audio_output);
Q_ASSERT(path.isValid());
if (!effects.isEmpty())
{
path.insertEffect(effects[2]);
}
media.play();
qDebug() << "Playing...";
}
構造函數返回後,path
和effects
將被銷燬。我注意到即使應用了效果,media
也會繼續播放(effects[2]
)。
我想我錯過了什麼。即使path
和effects
被銷燬,media
如何繼續播放?