2016-04-11 20 views
3

私はPythonを使い始めました。私はオーディオ操作用のプログラムを作っています。 私はPythonアプリケーションでのOpenALと3Dサウンドを実現しようとしていますが、私はちょうどそれがPython openAL 3Dサウンド

これは3Dサウンドのための私のコードで動作するように取得することができます:「

from openal.loaders import load_wav_file 
from openal.audio import * 

sink = SoundSink() 
listener = SoundListener() 
SoundSink.activate(sink) 
listener.position = (0, 0, 0) 
listener.velocity = (0, 0, 0) 
listener.orientation = (0, 0, -1, 0, 1, 0) 
source = SoundSource() 
wavsound = load_wav_file("test.wav") 
source.queue(wavsound) 
#SoundSink.play(source) 
sink.play(source) 

コードが実行されるが、それはdoesnのを

+1

ちょうど思考。終了する前に、プログラムの終わりに遅れを入れようとしましたか? OpenALは本質的にバックグラウンドで動作しますが、プログラムが終了すると、通常ALはそれを停止します。 –

答えて

0

BitbucketリポジトリページhereでPyALを使用する方法の例がいくつかあります。 audioplayer.py例をオフに基づいて、私は、正弦波に応じて左右のヘッドホンスピーカ間の音の代替と、この迷惑なサウンドの例を作った:

import time 
import math 
from openal.audio import SoundSink, SoundSource 
from openal.loaders import load_wav_file 

if __name__ == "__main__": 
    sink = SoundSink() 
    sink.activate() 
    source = SoundSource(position=[0, 0, 0]) 
    source.looping = True 
    data = load_wav_file("./sounds/Blip_Select.wav") 
    source.queue(data) 
    sink.play(source) 
    t = 0 
    while True: 
     x_pos = 5*math.sin(math.radians(t)) 
     source.position = [x_pos, source.position[1], source.position[2]] 
     sink.update() 
     print("playing at %r" % source.position) 
     time.sleep(0.1) 
     t += 5 
関連する問題