2016-04-11 30 views
3

Python ile çalışmaya başladım ve ses işleme programı yapıyorum. benim piton uygulamasında OpenAL'le 3D ses uygulamak çalışıyorum, ama sadece bu 3D ses için benim kodudurPython openAL 3D sesi

işe alabilirsiniz:

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) 

kod çalıştırır, ancak kötü kokan t

+1

; Çıkmadan önce programın sonunda bir gecikme yapmayı denediniz mi? OpenAL asıl olarak arka planda çalışır, ancak program kapanırsa AL genellikle onunla kapanır. –

cevap

0

Çalma sesi here Bitbucket veri deposu sayfasında PyAL'in nasıl kullanılacağına dair bazı örnekler vardır. audioplayer.py örneği kapalı dayanarak, sol ve bir sinüs dalgasına göre sağ kulaklık hoparlörü arasında ses alternatif bu can sıkıcı sondaj örneği yaptı: Sadece bir düşünce

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