1

関数の出力を見ると

Phonon.BackendCapabilities.availableAudioEffects()

私はこれをオプションの1つとして取得します。

>>> 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倍など、速度を2倍または4倍にする)を指定できますか?

4

1 に答える 1

3

さて、あまり多くの人がこれを見ていなかったので、私は続けて、最終的にそれを理解しました。これはすべて、フォノン用の私の特定のバックエンドメディアプレーヤーである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と呼ばれるデータ型を使用して行う必要があります。オーディオの速度を2倍にするために、これが私が呼んだものです:

 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」(2番目の引数)を取得します。私のシステムでは、デフォルトの速度は「1」、最小は「0.1」、最大は「40」です。これは、通常のオーディオファイルがエンコードする速度の10分の1から40倍の速度範囲を表します。

これが、gstreamerを使用する一部のPythonユーザーがオーディオの速度を変更するのに役立つことを願っています。

于 2011-06-30T17:13:26.883 に答える