2010-05-29 15 views
13

नहीं खेलता है मैं ध्वनि फाइलों (.wav) को pygame के साथ चलाने की कोशिश कर रहा हूं लेकिन जब मैं इसे शुरू करता हूं तो मैंने कभी भी कुछ नहीं सुना।
इस कोड है:पायगम, ध्वनि

import pygame 

pygame.init() 
pygame.mixer.init() 
sounda= pygame.mixer.Sound("desert_rustle.wav") 

sounda.play() 

मैं भी चैनल का उपयोग करने की कोशिश की, लेकिन परिणाम एक ही

उत्तर

0

आपका कोड desert_rustle.wav काफी ठीक खेलता है मेरी मशीन पर है (मैक OSX 10.5, पायथन 2.6.4, pygame 1.9 .1)। आप किस ओएस और पायथन और पायगम रिलीज का उपयोग कर रहे हैं? क्या आप .wav अन्य तरीकों से ठीक कर सकते हैं (उदाहरण के लिए open मैक के टर्मिनल पर start विंडोज कंसोल पर फ़ाइल नाम/पथ के बाद .wav फ़ाइल) फ़ाइल की गारंटी के लिए क्षतिग्रस्त नहीं है? अपनी विशिष्ट समस्या को डीबग करना मुश्किल है (जो आपके द्वारा दिए गए कोड के साथ नहीं है) इसे पुन: पेश करने में सक्षम होने के बिना और इन सभी महत्वपूर्ण विवरणों के बिना।

3

मुझे विंडोज 7 के तहत एक ही समस्या थी। मेरे मामले में मैं व्यवस्थापक के रूप में कोड नहीं चला रहा था। मुझसे मत पूछो क्यों, लेकिन कमांड लाइन खोलने के रूप में व्यवस्थापक ने इसे मेरे लिए तय किया।

+0

कोशिश की और यह काम नहीं किया। फिर भी मुझे लगता है कि यह एक विंडोज़ समस्या है। –

6

sounda.play() ध्वनि को चलाने के लिए आवश्यक वस्तु को लौटाता है। इसके साथ आप भी अगर ध्वनि अभी भी खेल रहा है पता कर सकते हैं:

channela = sounda.play() 
while channela.get_busy(): 
    pygame.time.delay(100) 
0

बस सुनिश्चित करें कि इसकी आवृत्ति की जानकारी करने के लिए अपने wav फ़ाइल को फिर से बचाने के लिए प्रयास करें। या फिर आप यकीन है कि इसकी आवृत्ति, बिट, आकार और चैनलों बनाने के लिए एक ध्वनि रिकॉर्ड कर सकते हैं

3

आप क्या करने की जरूरत कुछ इस तरह है (मैं इस समस्या को हल करने के लिए इस विधि का उपयोग):।

import pygame 
import time 

pygame.init() 
pygame.mixer.init() 
sounda= pygame.mixer.Sound("desert_rustle.wav") 

sounda.play() 
time.sleep (20) 

कारण मैंने सोने के लिए कार्यक्रम को बताया क्योंकि मैं बहुत सारे कोड टाइप किए बिना इसे चलाने के लिए एक रास्ता चाहता था। मुझे एक ही समस्या थी और ध्वनि नहीं बजती क्योंकि संगीत चलाने की कोशिश करने के बाद कार्यक्रम बंद हो गया।

यदि आप प्रोग्राम को वास्तव में कुछ करना चाहते हैं तो बस सभी आवश्यक कोड टाइप करें, लेकिन सुनिश्चित करें कि ध्वनि पूरी तरह से खेलने के लिए पर्याप्त समय तक टिकेगी।

5

मैं mixer.Sound खेलने से कोई आवाज नहीं थी, लेकिन यह काम शुरू कर दिया बाद मैं खिड़की बनाई गई है, यह एक कम से कम उदाहरण है, बस अपने फ़ाइल नाम बदलने के लिए, चलाने के लिए और खेलने के लिए कुंजी उत्तर प्रदेश प्रेस: ​​

WAVFILE = 'tom14.wav' 
import pygame 
from pygame import * 
import sys 

mixer.pre_init(frequency=44100, size=-16, channels=2, buffer=4096) 
pygame.init() 
print pygame.mixer.get_init() 
screen=pygame.display.set_mode((400,400),0,32) 

while True: 
    for event in pygame.event.get(): 
     if event.type == QUIT:              
      pygame.quit() 
      sys.exit() 
     if event.type == KEYDOWN: 
      if event.key==K_ESCAPE: 
       pygame.quit() 
       sys.exit() 
      elif event.key==K_UP: 
       s = pygame.mixer.Sound(WAVFILE) 
       ch = s.play() 
       while ch.get_busy(): 
        pygame.time.delay(100) 
    pygame.display.update() 
10

मेरे लिए (विंडोज 7, पायथन 2.7, पायगैम 1.9 पर) मुझे वास्तव में इसे काम करने के लिए pygame.init() कॉल को हटाना होगा या यदि pygame.init() pygame में कम से कम एक स्क्रीन बनाने के लिए रहता है।

मेरे उदाहरण:

import time, sys 
from pygame import mixer 

# pygame.init() 
mixer.init() 

sound = mixer.Sound(sys.argv[1]) 
sound.play() 

time.sleep(5) 
+0

'time.sleep (5)' समाधान था (जैसे वागोसलैब्रौ द्वारा उत्तर दिया गया)। – erik

+0

वाह, pygame.init() को दूर करने के लिए इसे मेरे लिए हल किया। अतुल्य! –

1

मुझे लगता है कि आप की जरूरत pygame.mixer.music है:

import pygame.mixer 
from time import sleep 
pygame.mixer.init() 
pygame.mixer.music.load(open("\windows\media\chimes.wav","rb")) 
pygame.mixer.music.play() 
while pygame.mixer.music.get_busy(): 
    sleep(1) 
print "done" 
1

बस कोशिश:

import pygame.mixer 
from time import sleep 
pygame.mixer.init() 
pygame.mixer.music.load(open("\windows\media\chimes.wav","rb")) 
print "" 
pygame.mixer.music.play() 
while pygame.mixer.music.get_busy(): 
sleep(1) 
print "done" 

यह काम करना चाहिए। आपको बस print "" जोड़ने की आवश्यकता है और ध्वनि में स्वयं को लोड करने का समय होगा।

0

मेरे पास ऐसा कुछ हुआ है। शायद आपको एक ही समस्या है? एक निरपेक्ष पथ का उपयोग कर प्रयास करें:

import pygame 

pygame.init() 
pygame.mixer.init() 
sounda= pygame.mixer.Sound("/absolute_path/desert_rustle.wav") 

sounda.play() 

कहाँ abslute_path स्पष्ट रूप से अपने वास्तविक निरपेक्ष पथ साथ बदल दिया है;)

अच्छी किस्मत।

0
import pygame 

pygame.init() 
sound = pygame.mixer.Sound("desert_rustle.wav") 
pygame.mixer.Sound.play(sound) 

इस अजगर पर 3

1

5 साल देर से जवाब कार्य करेगी, लेकिन मुझे आशा है कि मैं किसी की मदद कर सकते हैं .. :-)

सबसे पहले, आप की जरूरत नहीं है "pygame.init()" लाइन। दूसरा, एक लूप बनाएं और उसके अंदर ध्वनि चलाएं, या फिर pygame.mixer शुरू हो जाएगा, और तुरंत खेलना बंद कर देगा।

मुझे यह कोड रास्पबेरी पीआई के साथ रास्पबेरी पीआई पर ठीक काम करने के लिए मिला है। ध्यान दें कि मैंने थोड़ी देर-लूप का उपयोग किया जो ध्वनि फोवर को लूप जारी रखता है।

import pygame.mixer 

pygame.mixer.init() 
sounda = pygame.mixer.Sound("desert_rustle.wav") 

while True: 
    sounda.play() 
संबंधित मुद्दे