关于 PyQt Phonon 后端音频效果'speed'的文档



当我查看函数的输出时

Phonon.BackendCapabilities.availableAudioEffects()

我将此作为选项之一:

>>> speed_effect = Phonon.BackendCapabilities.availableAudioEffects()[3]
>>> speed_effect.name()
PyQt4.QtCore.QString(u'speed')
>>> speed_effect.__doc__
'Phonon.EffectDescription()nPhonon.EffectDescription(int, dict-of-QByteArray-QVariant)nPhonon.EffectDescription(Phonon.EffectDescription)'

我知道我需要将这个效果插入到一个连接到我的音频源文件的路径中,实现起来并不困难。我不明白的是如何访问选项,或者这种"速度"效果的功能是什么。我如何通过Python接口访问它?我可以指定播放速率(如2倍、4倍等,用于将速度加倍或四倍(作为选项吗?

嗯,没有太多人在看这个,所以我一直在看,最终找到了答案。请注意,所有这些都是我为Phonon开发的特定后端媒体播放器gstreamer所特有的。如果你有一个不同的后端,你需要做一些修补,看看你需要使用什么效果。

它的工作方式是,您可以通过调用函数来查看Phonon.Effect((选项的名称和描述

 from PyQt4 import QtGui, QtCore
 from PyQt4.phonon import Phonon
 list_of_backend_audio_effects = Phonon.BackendCapabilities.availableAudioEffects()

在这之后,我通过这样做弄清楚了哪种可用的效果是gstreamer选项"速度":

 list_of_effect_names = [str(elem.name()) for elem in list_of_backend_audio_effects]
 for iter in range(len(list_of_effect_names)):
     if list_of_effect_names[iter] == 'speed':
         effect_index = iter
         break

最后,您需要实际编辑参数,这必须通过一个名为QVariant的数据类型来完成。为了使音频速度翻倍,我称之为:

 speed_effect = Phonon.Effect(list_of_backend_audio_effects[effect_index])
 speed_effect.setParameterValue(speed_effect.parameters()[0],QtCore.QVariant(str(2)))

在第一行中,我创建了一个新的Phonon.Effect((,它将效果描述作为输入(调用availableAudioEffects((返回的内容(。然后,我将此效果对象的参数(第一个参数(设置为QVariant值"2"(第二个参数(。在我的系统上,默认速度为"1",最小值为"0.1",最大值为"40",这表示速度范围是常规音频文件编码速度的十分之一到40倍。

我希望这能帮助一些使用gstreamer的Python用户改变音频的速度。

相关内容

  • 没有找到相关文章

最新更新