Python openAL 3D声音 [英] Python openAL 3D sound

查看:165
本文介绍了Python openAL 3D声音的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚开始使用python,正在制作音频处理程序。
我试图在我的python应用程序中使用openAL来实现3D声音,但我只能使其工作

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

这是我的3D声音代码:

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

推荐答案

事实证明,其中有些在Bitbucket存储库页面上如何使用PyAL的示例此处。基于 audioplayer.py 示例,我制作了这个令人讨厌的示例,根据正弦波在左右耳机扬声器之间进行了声音选择:

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

这篇关于Python openAL 3D声音的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆