2009-04-23 20 views
5

まず最初に、私はPythonの初心者で、オブジェクト指向のもののための典型的なC++/Javaのバックグラウンドを持っています。Pythonでmp3ファイルを再生して制御するには?

私は現在取り組んでいるこの現在の努力のためにPythonを試してみることになっていましたが、これまでのところ私はそれが好きです。私が持っている1つの問題は良いmp3モジュールを見つけることです。

私はTkSnackを試してみましたが、これはエラーなしで正常にインストールされ、実行されましたが(オーディオデバイスがビジーでない限り)、実際にサウンドを生成することはできませんでした。ドキュメンテーションの量には失望していました。

私は切り替えを決めました。 PyMadはUbuntuの標準リポジトリにもあるので試しました。これについての資料はほとんどなく、音を出すことができました。唯一の問題は、常にオーディオバッファを書き込み/再生するループが必要であることです。これは、私が別のスレッドやプロセスでこれを実行し、何らかの理由で一時停止などのシーク位置を制御する必要があるため、再生制御を扱うのが特に毛深くなります(私の意見では)。なぜ私がPythonを使用しているのかは、あまりにも低いレベルです。ループを制御するのではなく、 "mysound.play()"や "mysound.pause()"のような簡単なコマンドでTkSnackのシンプルさが好きでした。

私はpyMediaも見ましたが、これはドキュメントの最新版のようですが、私のマシンにインストールすることはできません。 "python setup.py build"コマンドを実行すると、 "gcc exited with value 1"というエラーが出る。

私は、これらのモジュールの1つ、または完全に異なるものを探しています。これは、mp3(および他のフォーマットも好評です)の高レベルで使いやすいものです。基本的な再生制御(一時停止、停止、スキップ、シーク)、最終的にファイルをストリーミングすることもできます(もし私がそこに着いたら)。

EDIT:私はGstreamer用のPythonバインディングが好きですが、これはクロスプラットフォームのソリューションですか?私はそれを必要条件として言及するのを忘れていました。しかし、私はいつもGStreamerをLinuxに関連付けるだけですが、これは他のOSでも動作しますか?

EDIT:ウィキペディアはyesと言っています。

答えて

2

ごめんなさいPyMadやpyMediaでお手伝いできませんが、他にも提案があります。 Pythonで書かれた

既存の音楽プレーヤー:

上記使用のすべてGStreamerマルチメディアフレームワークのPython bindings。バインディングのドキュメントは不足していますが、hereherehere、およびソースディストリビューションhereの例を確認してください。

+0

私はGStreamerとのやりとりが好きです。なぜなら、ほとんどのオーディオ/ビデオプログラムがすでにLinuxで動作するからです。しかし、それをクロスプラットフォームにしたいのであれば、それはまだ適用可能でしょうか? – gnomed

+0

リンクのうち2つはPythonパッケージではないようです... – heather

0

私はちょうどこれに対処しなければなりませんでした。私の研究からは、あなたのベストベットはpygletpygameです。それらはa/vを内蔵したインターフェースパッケージです。

+0

pygletは有望に見えますが、次のカップルの日にはあまりにも忙しすぎて実装しようとしません。しかし、私がすれば、私はあなたに知らせるでしょう。 – gnomed

関連する問題