问题
I just started with python and I am making program for audio manipulation. I am trying to implement 3D sound with openAL in my python application, but I just can get it to work
this is my code for 3D sound:
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)
The code executes, but it doesn't play the sound
回答1:
It turns out that there are some examples of how to use PyAL at the Bitbucket repository page here. Based off the audioplayer.py
example, I made this annoying-sounding example with the sound alternative between the left and right headphone speaker according to a sine wave:
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
来源:https://stackoverflow.com/questions/36555867/python-openal-3d-sound