[英]Changin mp3 speed in Qt and C++ [QMediaPlayer]
我正在嘗試開發一個小應用程序,您可以在其中加載mp3文件並以可變速度播放它! (我知道它已經存在:-))
我正在使用Qt和C ++。 我已經有基本的播放器了,但是我對速率不滿意,因為我想在不停止播放的情況下平穩地更改速率(例如在Mixxx中)! 如果更改值並在聲音中產生間隙,則QMediaPlayer始終會停止。 我也不想改變音高!
我已經找到了一個叫做“ SoundTouch”的東西,但是現在我完全不知道該怎么做,如何處理我的mp3數據以及如何將其發送給播放器! “ SoundTouch”庫能夠滿足我的要求,我從主頁上的示例中獲得了它。
任何幫助表示贊賞! 只要我可以使用Qt / C ++,我也可以使用“ SoundTouch”之外的任何其他解決方案 !
(第二件事:我想查看波形概覽以及移動波形的一部分(在歌曲的實際位置附近),因此我也可以使用提示來獲取波形數據)
提前致謝!
到目前為止(Qt 5.5),這僅與QMediaPlayer無關。 您需要執行以下操作:
使用GStreamer,FFMpeg或(新)QAudioDecoder解碼音頻: http ://doc.qt.io/qt-5/qaudiodecoder.html-這將為您提供原始的PCM流;
將SoundTouch或其他庫應用於此原始數據以更改音高。 如果GPL沒問題,請查看http://nsound.sourceforge.net/examples/index.html ,如果您開發專有的東西,則STK可能是一個更好的選擇: https : //ccrma.stanford.edu/software/ STK /
使用QAudioOutput將修改后的數據輸出到音頻設備中。
該策略盡可能使用Qt,並為您帶來最佳的平台覆蓋率(盡管它不支持QAudioOutput,但您仍然會失去Android)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.