1

我正在开发一种“高级播放”音频应用程序来帮助音乐转录。这个想法是允许用户更改音频速度/音高,以及选择和可能循环部分音轨。我暂时选择使用 gstreamer。我在管道中有 scaletempo 插件来帮助改变速度。我不确定进行循环的最佳方法是什么。

从阅读文档看来,我可以通过在 scaletempo 元素上执行 gst_element_seek 并设置 *stop_type* 和停止参数,等待消息总线上的 EOS,然后再执行一次搜索等来完成它。

有更好的方法吗?理想情况下,我希望获得平滑的循环,但如果我不这样做,它不会破坏交易。gstreamer 文档包含对“段”概念的提及,但从浏览文档来看,我仍然不知道它们是什么,也不知道它们在我的场景中是否有用。

非常欢迎指向 C/Python/Haskell/whatever 中的代码的指针。

4

0 回答 0