Pygletのmediaモジュールで音声、動画再生
チュートリアルの内容を一部日本語に直しています。
Pygletの対応オーディオ、ビデオフォーマット
Pygletは標準でWAVファイルを扱うことができる。
AVbinがインストールされていれば、他の多くのビデオフォーマットが再生可能である。と、あるが、AVbinはすでにインストールされているため、新しくインストールする必要はない。
のファイル形式がサポートされている。
メディアのロード
音声と動画は同じ方法でロードされ、
source = pyglet.media.load('sound.wav')
のようにしてSourceオブジェクトを受け取ることができる。
早く再生されなければならない特に短い銃弾や爆発音のような音声を取り扱うとき,ディスクからストリーミングされるよりも,StaticSourceを使うほうがよい.
StaticSourceを使ってロードするとき、以下のようにする。
ban_sound = pyglet.media.StaticSource(pyglet.media.load(‘ban.wav’))
最初に説明したロードでは、loadメソッドの第二引数であるstreamingがデフォルトでTrueになっており、この時StreamingSourceが生成される。
source = pyglet.media.load('sound.wav', streaming=False)
のようにロードすると同様にStaticSourceが生成される。
StaticSourceの他の利点は、同じ音声をいくつもの数のプレイヤーにキューできるため,同時にたくさんの数を再生することができることにある。
銃弾や爆発音、斬撃音などがこの利点を活用するに当てはまる。
音声の再生
メディアプレイヤーを作成し,Playerを受け取る
Music_player = media.Player()
ミュージックプレイヤーのキューにStaticSourceかStreamingSourceをポストする.
Music_player.queue(music)
ミュージックプレイヤーを再生する
Music_player.play()
ビデオの再生
プレイヤーがビデオを再生するとき、get_texture()メソッドを使用し、フレーム画像を取得する。これを用いると
、音声トラックと同期して動画を再生することができる。