2008-11-09 12 views
18

मैंने pyudio का उपयोग कर .wav फ़ाइल चलाने का प्रयास किया। यह विंडोज़ पर बहुत अच्छा काम करता है, लेकिन जब कोई अन्य डिवाइस ध्वनि का उपयोग कर रहा है तो उबंटू में काम नहीं करता है।पायथन में ध्वनि फ़ाइल चलाने के लिए एक क्रॉस प्लेटफॉर्म तरीका क्या है?

The error is "IOError: [Errorno Invalid output device (no default output device)] -9996

क्या कोई अन्य लाइब्रेरी है जिसका उपयोग मैं करने की कोशिश कर सकता हूं? एक और तरीका?

उत्तर

4

क्या आपने पाइमेडिया देखा है?

import time, wave, pymedia.audio.sound as sound 
f= wave.open('YOUR FILE NAME', 'rb') 
sampleRate= f.getframerate() 
channels= f.getnchannels() 
format= sound.AFMT_S16_LE 
snd= sound.Output(sampleRate, channels, format) 
s= f.readframes(300000) 
snd.play(s) 
while snd.isPlaying(): time.sleep(0.05) 

रेफरी:: http://pymedia.org/tut/play_wav.html

बेशक

, आप इस तरह https://docs.python.org/library/wave.html या के रूप में अन्य पुस्तकालयों के लिए ऑडियो के तहत पायथन विकी (http://wiki.python.org/moin/Audio/) पर एक नज़र हो सकता है यह रूप में यह एक WAV फ़ाइल खेलने के लिए के रूप में आसान लग रहा है फिर गेम लाइब्रेरीज़ (http://wiki.python.org/moin/PythonGameLibraries) के तहत पाइथन की विकी में जो आपको ओपनल या पायगम में बाध्य करने के लिए इंगित करेगा जिसमें ध्वनि मॉड्यूल हैं।

और आखिरकार, हालांकि मुझे प्यूडियो की सीमाएं नहीं पता हैं, लेकिन आपका त्रुटि संदेश लाइब्रेरी की तरह लगता है कि लाइब्रेरी किसी अन्य प्रक्रिया द्वारा डिवाइस के उपयोग से अधिक डिफ़ॉल्ट आउटपुट डिवाइस नहीं ढूंढ पाती है। हो सकता है कि pyudio के get_default_output_device_info द्वारा आउटपुट डिवाइस को कौन सा आउटपुट डिवाइस लौटाया जाए और उबंटू में अपनी डिफ़ॉल्ट सेटिंग के साथ इसकी तुलना करें।

12

आप उपयोग कर सकते हैं wxPython

sound = wx.Sound('sound.wav') 
sound.Play(wx.SOUND_SYNC) 

या

sound.Play(wx.SOUND_ASYNC) 

Here wxPython डेमो से एक उदाहरण है।

1

मुझे लगता है कि अगर आपके आवश्यकताओं को पूरा बिल्कुल यकीन नहीं है, लेकिन मैं तुरंत सोचा pygame

http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Sound

from pygame import mixer 

mixer.init() 
s = mixer.Sound('sound.wav') 
s.play() 
2

आप Simpleaudio कोशिश कर सकते हैं:

> pip install simpleaudio 
फिर

:

import simpleaudio as sa 

wave_obj = sa.WaveObject.from_wave_file("path/to/file.wav") 
play_obj = wave_obj.play() 
play_obj.wait_done() 
0

मुझे सबसे आसान होने के लिए playsound मिला।

from playsound import playsound 

is_synchronus = False 
playsound(r"C:\Windows\Media\chimes.wav", is_synchronus) 
संबंधित मुद्दे