Cla*_*diu 102 python audio platform-independent
在Python中播放声音文件(.wav)的最简单方法是什么?最简单的我指的是大多数平台独立且需要最少的依赖关系.pygame当然是一个选择,但它似乎只是声音矫枉过正.
ore*_*tis 103
对于Windows,您可以使用winsound.它是内置的
import winsound
winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
Run Code Online (Sandbox Code Playgroud)
你应该可以使用ossaudiodev for linux:
from wave import open as waveOpen
from ossaudiodev import open as ossOpen
s = waveOpen('tada.wav','rb')
(nc,sw,fr,nf,comptype, compname) = s.getparams( )
dsp = ossOpen('/dev/dsp','w')
try:
from ossaudiodev import AFMT_S16_NE
except ImportError:
from sys import byteorder
if byteorder == "little":
AFMT_S16_NE = ossaudiodev.AFMT_S16_LE
else:
AFMT_S16_NE = ossaudiodev.AFMT_S16_BE
dsp.setparameters(AFMT_S16_NE, nc, fr)
data = s.readframes(nf)
s.close()
dsp.write(data)
dsp.close()
Run Code Online (Sandbox Code Playgroud)
(ossaudiodev的信用:Bill Dandreta http://mail.python.org/pipermail/python-list/2004-October/288905.html)
cse*_*ton 30
Snack Sound Toolkit可以播放wav,au和mp3文件.
s = Sound()
s.read('sound.wav')
s.play()
Run Code Online (Sandbox Code Playgroud)
小智 28
这看起来很荒谬,但你可以随时使用Windows(或任何你喜欢的操作系统)为你管理声音!
import os
os.system("start C:/thepathyouwant/file")
Run Code Online (Sandbox Code Playgroud)
简单,没有扩展,有点慢和垃圾,但工作.
Pet*_*ers 16
绝对使用Pyglet.这是一个大包,但它是纯python没有扩展模块.这肯定是最容易部署的.它还具有出色的格式和编解码器支持.
import pyglet
music = pyglet.resource.media('music.mp3')
music.play()
pyglet.app.run()
Run Code Online (Sandbox Code Playgroud)
小智 7
在play()命令添加延迟10秒左右之后,它就会起作用
import pygame
import time
pygame.init()
pygame.mixer.music.load("test.wav")
pygame.mixer.music.play()
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
这也会播放.mp3文件.
pyMedia的声音示例就是这样做的。这应该是您所需要的。
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 )
Run Code Online (Sandbox Code Playgroud)