UbuntuでPhononを使用して異なる速度でサウンドを再生する方法を調査しようとしています。私が最初に考えたのは、関数呼び出しで使用できるオプションを調べることでした。
Phonon.BackendCapabilities.availableAudioEffects()
ただし、PyQt と Phonon をインポートしてその関数呼び出しを行うと、次のようになります。
ely@zaffpants:~/Desktop$ python2.6
Python 2.6.6
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt4; from PyQt4.phonon import Phonon
>>> print Phonon.BackendCapabilities
<class 'PyQt4.phonon.BackendCapabilities'>
>>> print Phonon.BackendCapabilities.availableAudioEffects()
WARNING: Phonon needs QCoreApplication::applicationName to be set to export audio output names through the DBUS interface
ASSERT: "QCoreApplication::instance()" in file ../../phonon/factory.cpp, line 378
Aborted
ely@zaffpants:~/Desktop$
このオンラインで良いスレッドが見つかりません。なぜこれが中止されているのですか?また、私の現在のプログラムでは、すでに Phonon を使用して複数のオーディオ ストリームを同時に再生しており、カスタム ビデオ プレーヤー (Phonon ではない) を管理する Qt スレッドにリンクして、ユーザーがビデオをより速くドラッグします。したがって、この程度まで機能するにはフォノンを正しくインストールする必要があり、私はすでにいくつかのバックエンド機能を使用しています。どのようなバックエンド効果があるかを照会すると、なぜ中止されるのですか?
助言がありますか?また、このエラーを修正しない場合でも、Phonon に強制的にオーディオ ファイルを通常より速くまたは遅く再生させる方法について何か提案はありますか?
追加した
次のようにして、中止の問題を解決しました。PyQt と Phonon をインポートした後、ダミーの QApplication を作成し、次のように名前を付けました。
>>> import sys
>>> app = PyQt4.QtGui.QApplication(sys.argv)
>>> app.setApplicationName('myname')
>>> print Phonon.BackendCapabilities.availableAudioEffects()
しかし、これは関数の出力で、リストから 1 つの項目を指定した後でも判読できません。読みやすい形式にする方法がわからない...?
(<unknown>:1848): GStreamer-CRITICAL **: gst_debug_add_log_function: assertion `func != NULL' failed
[<PyQt4.phonon.EffectDescription object at 0x7f941539ed70>, <PyQt4.phonon.EffectDescription object at 0x7f941539ef30>, <PyQt4.phonon.EffectDescription object at 0x7f941539efa0>, <PyQt4.phonon.EffectDescription object at 0x7f9408032050>, <PyQt4.phonon.EffectDescription object at 0x7f94080320c0>, <PyQt4.phonon.EffectDescription object at 0x7f9408032130>]
>>> print Phonon.BackendCapabilities.availableAudioEffects()[0]
<PyQt4.phonon.EffectDescription object at 0x7f941539ed70>
ポスト スクリプト 以下のコメントにあるように、Phonon の音声速度に関してはほとんどのことがわかりました。そのスレッドは次のとおりです。