我正在尝试开发一个小应用程序,您可以在其中加载 mp3 文件并以可变速度播放它!(我知道它已经存在:-))
我正在使用 Qt 和 C++。我已经有了基本的播放器,但我对速率问题感到困惑,因为我想在不停止播放的情况下平滑地更改速率(就像在 Mixxx 中一样)!如果我更改值并在声音中产生间隙,QMediaPlayer 总是会停止。我也不希望音调改变!
我已经找到了一个叫做“SoundTouch”的东西,但现在我完全不知道如何处理它,如何处理我的 mp3 数据以及如何将它传送给播放器!“SoundTouch”库能够做我想做的事,我是从主页上的示例中得到的。
- 如何导入 mp3 文件,以便使用 SoundTouch 功能对其进行处理
- 如何播放 SoundTouch 功能的输出?(也许 QMediaPlayer 可以完成这项工作?)
- 这些东西是如何现场完成的?我猜我必须做某种流?所以我可以在播放过程中改变速度并继续播放而没有间隙。在我的脑海中,它必须是位于数据和播放器之间的东西,所有数据都必须实时通过,后面有一个小缓冲区(20-50 毫秒左右),以避免在处理未来数据时出现间隙。
任何帮助表示赞赏!只要我可以继续使用 Qt/C++,我也愿意接受任何其他解决方案,然后是“SoundTouch”!
(第二件事:我想查看波形概览以及移动其中的一部分(围绕歌曲的实际位置),因此我还可以使用有关如何获取波形数据的提示)
提前致谢!