作者Maiyo (梦中的帐号)
看板Python
标题[问题] 新手问题 如何播放网路上的.wav档?
时间Fri Jun 17 08:55:55 2011
想请问一下
我要怎麽直接播放位於网路上的.wav档呢?
目前我是这样作
URL = ("档案网路路径")
response = urllib2.urlopen(URL)
waveFile = response.read()
如此得到waveFile本体
可是接下来如何播出?
使用pygame
pygame.mixer.init()
pygame.mixer_music.load(waveFile)
pygame.mixer.music.play()
会挂在load动作 他说我传的参数型别错误
使用wave
wave.open(waveFile, 'r')
同样也出现型别错误的问题
请问我该怎麽修改?
PS.
如果用Java写 这样做可以播放...
URL url = new URL(档案网路路径);
AudioClip clip = Applet.newAudioClip(url);
clip.play();
同样的功能用python怎麽作呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.202.48.60
1F:推 jjandy:我也想知道 06/17 12:14
2F:推 EmptySmile:pygame.init() 06/17 12:42
3F:→ EmptySmile:pygame.mixer.Sound(waveFile).play() 06/17 12:43
多谢 档案读进去了 但出现错误
以下是我的code
------------------------------------------------------
import pygame.mixer
import urllib2
import time
URL = ("
http://163.20.58.2/edisk/demo/sound/0001.WAV")
response = urllib2.urlopen(URL)
waveFile = response.read()
pygame.mixer.init()
pygame.mixer.Sound(waveFile).play()
while pygame.mixer.get_busy():
time.sleep(0.1)
------------------------------------------------------
播放时出现error 在
time.sleep(0.1)
TypeError: argument 1 must be string without null bytes, not str
(见鬼...)
如果改成
------------------------------------------------------
while pygame.mixer.get_busy():
print ('playing...')
------------------------------------------------------
播放时会出现一个很短暂的高频音 然後跳出
Exception exceptions.TypeError: 'argument 1 must be string
without null bytes, not str' in <module 'threading'
from 'C:\Python25\lib\threading.pyc'> ignored
※ 编辑: Maiyo 来自: 210.202.48.60 (06/17 14:24)
5F:→ EmptySmile:...um...pygame不是很熟...只好等高手们来解了... 06/17 15:08
6F:→ EmptySmile:您要不要试试看抓档下来播放. 06/17 15:28
7F:→ Maiyo:档案在本地端播放一切正常 但需求是播放网路上的档... 06/17 15:35
8F:→ EmptySmile:我知道...我意思是python抓档下来自己播放 06/17 15:40
10F:→ Maiyo:呃... 这个会安装GStreamer 如果我最後用py2exe包出档案 06/17 17:10
11F:→ Maiyo:有办法在没有安装GStreamer的电脑上执行吗? 06/17 17:10
12F:→ Maiyo:如果要额外安装别的软体 还不如直接用java... /_\ 06/17 17:12