2012-11-13 15 views
5

बजाने में बड़ी देरी है I ड्रम मशीन की तरह लय खेलने वाली एक अजगर लिपि बनाने के साथ खेल रहा हूं। मैंने ऑडियो को संभालने के लिए PyGame का उपयोग किया है। हालांकि मुझे कॉलिंग प्ले और वास्तविक ऑडियो सुनने के बीच महत्वपूर्ण/अस्वीकार्य देरी का अनुभव होता है।PyGame ध्वनि

मैं इंटरैक्टिव दुभाषिया में निम्न कोड चिपकाया है, और फिर अंतिम पंक्ति बार-बार निष्पादित करें:

import pygame 
pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096) 
s = pygame.mixer.Sound('snare.wav') 
s.play(loops=0, maxtime=0, fade_ms=0) 

इंटर बटन दबाने और ऑडियो सुनने के 400 मि.से चारों ओर मेरे सबसे अच्छे अनुमान कर रहा है, और वास्तव में के बीच का समय ध्यान देने योग्य और अस्वीकार्य। देरी लगभग वही है जैसे कि मैं वीएलसी में प्ले बटन पर क्लिक करता हूं और ऑडियो चलाने के लिए प्रतीक्षा करता हूं।

मैंने विंडोज और उबंटू दोनों पर एक ही परिणाम के साथ यह कोशिश की है। मेरा कंप्यूटर थोड़ा पुराना है, इंटेल कोर i3, 2.53GHz है, लेकिन मुझे लगता है कि यह कोई समस्या नहीं होनी चाहिए।

मैं इसके बारे में क्या कर सकता हूं?

एक पाश में:

इस कोड को एक ही अंतराल को दर्शाता है।

for i in range(10): 
    print i 
    s.play(loops=0, maxtime=0, fade_ms=0) 
    sleep(2) 
+0

1) शायद दुभाषिया में देरी हो सकती है? 'Raw_input(); s.play (loops = 0, maxtime = 0, fade_ms = 0) 'का प्रयास करें, फिर फिर से एंटर दबाएं। 2) क्या ध्वनि फ़ाइल की शुरुआत में ही घबराहट शुरू होती है? यदि आप ऑडैसिटी में फ़ाइल खोलते हैं, तो शुरुआत और वास्तविक ध्वनि के बीच कितना समय है? –

+0

1) कोई फर्क नहीं पड़ता। 2) वास्तविक ध्वनि तरंग फ़ाइल में तुरंत शुरू होता है। इसके अलावा मैंने अन्य तरंग फाइलों के साथ कोशिश की है। –

+0

क्या आप ध्वनि फ़ाइल के लिए एक लिंक पोस्ट कर सकते हैं, मैं अपनी मशीन –

उत्तर

8

सम्भावित समाधान (512 उदाहरण) बफर आकार को कम करने के लिए है:

import pygame 
pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=512) 
s = pygame.mixer.Sound('snare.wav') 
s.play(loops=0, maxtime=0, fade_ms=0) 
1

मैं कुछ मिनटों के पहले एक ही समस्या थी, और वहाँ एक समाधान है कि This other thread

में मेरे लिए काम करता है

यह प्रारंभिक समस्या की तरह दिखता है, अगर आप पहले pygame init (या अन्यथा XD) in pggame को बफर नहीं मिलते हैं। मिक्सर init() और pre_init प्रारंभ() पहले, और प्रयोग वहाँ से:

pygame.mixer.pre_init(44100, -16, 2, 512) 
pygame.mixer.init() 
pygame.init() 

यही काम करना चाहिए :) गुड लक!

संबंधित मुद्दे