<table><tr><td style="">rjvbb added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D14397">View Revision</a></tr></table><br /><div><div><p>That's a nicety, not necessarily a requirement, at least not for playing notification sounds. Just how often do you get sound alerts at such high rates that caching becomes unavoidable, before you get mad and resolve the issue or yank the plug? I think that proper cross-platform support without requiring multiple 3rd-party libraries is more important than being able to leverage PA caching directly.</p>

<p>With QMM, playing audio can be as simple as</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("/path/to/audio.whatever"));
player->play();</pre></div>

<p>That doesn't look like "sound middleware madness" to me, is probably much easier than leveraging "sound lowerware" directly and the documentation suggests this class has buffering support.<br />
The lower-level and audio-only QAudioOutput requires a bit more coding but I'd say it's still preferrable over introducing new external dependencies.</p>

<p>If not already the case, PA caching can probably be leveraged from QMediaPlayer, and if that's justifiable it shouldn't be hard to upstream such a modification.</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>GStreamer works on all major operating systems such as Linux, Android, Windows, Max OS X</p></blockquote>

<p>I know it works on Mac (and MSWin) but that doesn't make it "native". I also know what it depends on (the basic MacPorts port:gstreamer1 will pull in GTk3). I'd say that's not even acceptable for a KDE requirement on any Unix variant; introducing such a dependency on Mac (or MSWin) is going against the current flow of making KDE a proper and as-native-as-possible citizen on those platforms.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R289 KNotifications</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D14397">https://phabricator.kde.org/D14397</a></div></div><br /><div><strong>To: </strong>broulik, Frameworks, dfaure, davidedmundson, sitter, drosca, kfunk, rjvbb<br /><strong>Cc: </strong>nicolasfella, kde-frameworks-devel, michaelh, ngraham, bruns<br /></div>