python winsound_将winsound转换为linux平台?
不久前我在写一个聊天脚本,我用winsoundpython库来播放“叮”的声音(叮当.wav)当收到新消息时。现在我想知道如何才能在linux上实现这个功能,只需要一个.ogg音频文件。代码如下:import sys
import util
import thread
import socket
import winsound
class ClientSocket():
rbufsize = -1
wbufsize = 0
def __init__(self, address, nickname=''):
if type(address) == type(()) and type(address[0]) == type('') and type(address[1]) == type(1):
pass
else:
print ('Address is of incorrect type. \n' +
'Must be (serverHost (str), serverPort (int)).')
sys.exit(1)
if nickname:
self.changeNick(nickname)
else:
self.changeNick(raw_input('Nickname: '))
self.prompt_on = False
self.address = address
def connect(self):
self.connection=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.connection.connect(self.address)
self.rfile = self.connection.makefile('rb', self.rbufsize)
self.wfile = self.connection.makefile('wb', self.wbufsize)
self.wfile.write('/nick ' + self.nickname + '\n')
def serve_forever(self):
self.connect()
thread.start_new_thread(self.acceptinput,())
line = ""
while line not in ('/exit','/quit', '/q'):
self.prompt_on = True
line = raw_input(self.prompt)
self.prompt_on = False
if line[:2] == '/n' or line[:5] == '/nick':
self.changeNick(line.split(' ', 1)[1].strip())
self.wfile.write(line + '\n')
self.close()
self.connection.shutdown(socket.SHUT_RDWR)
self.connection.close()
def changeNick(self, newNick):
self.nickname = newNick
self.prompt = self.nickname+': '
self.backspace = '\b' * len(self.prompt)
def acceptinput(self):
while 1:
data = self.rfile.readline().strip()
if data:
self.writedata(data)
if 'Nickname successfully changed to' in data:
self.changeNick(data.split('"')[1])
def writedata(self, data):
if self.prompt_on:
output = data if len(data) >= len(self.prompt) else data + ' ' * (len(self.prompt) - len(data))
winsound.PlaySound("ding.wav", winsound.SND_FILENAME)
sys.stdout.write(self.backspace + output + '\n' + self.prompt)
sys.stdout.flush()
else:
print data
def close(self):
if not self.wfile.closed:
self.wfile.flush()
self.wfile.close()
self.rfile.close()
def main():
serverHost = raw_input('Server IP/Hostname: ')
if not serverHost:
serverHost = util.getIP()
else:
serverHost = socket.gethostbyname(serverHost)
serverPort = input('Server Port: ')
address = (serverHost, serverPort)
client = ClientSocket(address)
print 'Connecting to server on %s:%s' % (serverHost, serverPort)
client.serve_forever()
if __name__ == '__main__':
main()
如果有人能帮我把它转换成播放.ogg文件,那就太棒了:)
谢谢,肖恩。在
python winsound_将winsound转换为linux平台?相关推荐
- Linux平台PPT转图片(Python)
由于网站一般是展示PPT,想要在WEB上进行PPT展示且资源地址不在公网,一般只能通过PPT转化为图片,再由前端进行图片的展示. 由于项目部署环境都在Linux平台,所以需要进行Linux平台上PPT ...
- Linux平台下动态链接库.so转换成windiws平台下.dll文件并使用python调用
问题起因: 在运行PointNet的可视化程序时,作者只提供了linux平台下的动态链接库程序源码,自己的windows平台下无法调用.发现是动态链接库的文件格式不对,遂学习如何将.so文件转换成.d ...
- MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接
MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接 <一,>MongoDB 简介篇Ruiy; MongoDB是一个高性能,开源,无模式 ...
- 【转】在 Linux 平台下使用 JNI
引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经过广泛测试的非 Java 代码,将它们全部用 Java 来重写,恐怕会带来巨大的工作量和长期的测试:如果我们的应用中需要访 ...
- 基于 linux 平台的 libpcap 源代码分析
libpcap 是 unix/linux 平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础.Libpcap 可以在绝大多数类 unix 平台下工作,本文分析了 libpcap 在 linu ...
- Linux平台开发技术指南
以下技术和工具是Linux平台下工作的基础,熟练掌握: C++ 工作语言,重要性不言而喻: 入门: <C++ Primer>http://book.douban.com/subject/1 ...
- (转)Thrift在Windows及Linux平台下的安装和使用示例
转载自Thrift在Windows及Linux平台下的安装和使用示例 thrift介绍 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的RPC(远程服务调用)框架 ...
- 在linux平台搭建mongodb环境
2019独角兽企业重金招聘Python工程师标准>>> 1. 下载安装包,解压 根据linux版本,下载mongodb版本,我是用的ubuntu16.04.地址:https://ww ...
- 在 Linux 平台下使用 JNI
原文地址: http://www.ibm.com/developerworks/cn/java/l-linux-jni/ 引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经 ...
最新文章
- 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
- 【超详细】手把手教你使用YOLOX进行物体检测(附数据集)
- [转]两分钟让你明白什么是ERP!
- muduo学习笔记 线程类
- 有效沟通的技能有哪些_如何有效地展示您的数据科学或软件工程技能
- Weblogic java生成wlfullclient.jar
- nginx安装lua/replace-filter-nginx-module
- 国二java好过还是office好过,计算机二级考哪一个科目比较容易过,Ms office 较为简单实用...
- python 调用函数
- 带你走进3D建模!一份建模零基础小白的入门宝典,建议收藏细读
- 范莎学院 计算机,加拿大范莎学院
- 水管工游戏(啊哈算法)
- remote access between two linuxs
- 浅谈对Vue框架中MVVM的认识
- Android(一)
- 再次强调完成的定义(DoD)
- 强制重启计算机快捷键,强制重启电脑快捷键
- RabbitMQ在Windows环境下的服务启动问题
- flash位图技术研究篇 9 2D平面映射球体
- matlab中如何画隐函数的图像
热门文章
- 帧中继更具体配置信息
- 50matches:更准确的搜索引擎
- mysql 中average_mysql – 计算SQL中的移动平均值
- 信息学奥赛一本通 1055:判断闰年 | OpenJudge NOI 1.4 17
- 幸运数字(洛谷-P3292)
- 看病(信息学奥赛一本通-T1371)
- 笨小猴(信息学奥赛一本通-T1407)
- 18 计量单位xx未对语言xx定义/在语言xx中没有维护短文本
- python怎么学习一门语言_如何学习Python这一门语言
- 如何在ubuntu上用c++串口通信_让你搞懂PLC串口通讯和通讯接口,这东西估计没几个能说清楚~...