不久前我在写一个聊天脚本,我用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平台?相关推荐

  1. Linux平台PPT转图片(Python)

    由于网站一般是展示PPT,想要在WEB上进行PPT展示且资源地址不在公网,一般只能通过PPT转化为图片,再由前端进行图片的展示. 由于项目部署环境都在Linux平台,所以需要进行Linux平台上PPT ...

  2. Linux平台下动态链接库.so转换成windiws平台下.dll文件并使用python调用

    问题起因: 在运行PointNet的可视化程序时,作者只提供了linux平台下的动态链接库程序源码,自己的windows平台下无法调用.发现是动态链接库的文件格式不对,遂学习如何将.so文件转换成.d ...

  3. MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接

    MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接 <一,>MongoDB 简介篇Ruiy; MongoDB是一个高性能,开源,无模式 ...

  4. 【转】在 Linux 平台下使用 JNI

    引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经过广泛测试的非 Java 代码,将它们全部用 Java 来重写,恐怕会带来巨大的工作量和长期的测试:如果我们的应用中需要访 ...

  5. 基于 linux 平台的 libpcap 源代码分析

    libpcap 是 unix/linux 平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础.Libpcap 可以在绝大多数类 unix 平台下工作,本文分析了 libpcap 在 linu ...

  6. Linux平台开发技术指南

    以下技术和工具是Linux平台下工作的基础,熟练掌握: C++ 工作语言,重要性不言而喻: 入门: <C++ Primer>http://book.douban.com/subject/1 ...

  7. (转)Thrift在Windows及Linux平台下的安装和使用示例

    转载自Thrift在Windows及Linux平台下的安装和使用示例 thrift介绍 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的RPC(远程服务调用)框架 ...

  8. 在linux平台搭建mongodb环境

    2019独角兽企业重金招聘Python工程师标准>>> 1. 下载安装包,解压 根据linux版本,下载mongodb版本,我是用的ubuntu16.04.地址:https://ww ...

  9. 在 Linux 平台下使用 JNI

    原文地址: http://www.ibm.com/developerworks/cn/java/l-linux-jni/ 引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经 ...

最新文章

  1. 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
  2. 【超详细】手把手教你使用YOLOX进行物体检测(附数据集)
  3. [转]两分钟让你明白什么是ERP!
  4. muduo学习笔记 线程类
  5. 有效沟通的技能有哪些_如何有效地展示您的数据科学或软件工程技能
  6. Weblogic java生成wlfullclient.jar
  7. nginx安装lua/replace-filter-nginx-module
  8. 国二java好过还是office好过,计算机二级考哪一个科目比较容易过,Ms office 较为简单实用...
  9. python 调用函数
  10. 带你走进3D建模!一份建模零基础小白的入门宝典,建议收藏细读
  11. 范莎学院 计算机,加拿大范莎学院
  12. 水管工游戏(啊哈算法)
  13. remote access between two linuxs
  14. 浅谈对Vue框架中MVVM的认识
  15. Android(一)
  16. 再次强调完成的定义(DoD)
  17. 强制重启计算机快捷键,强制重启电脑快捷键
  18. RabbitMQ在Windows环境下的服务启动问题
  19. flash位图技术研究篇 9 2D平面映射球体
  20. matlab中如何画隐函数的图像

热门文章

  1. 帧中继更具体配置信息
  2. 50matches:更准确的搜索引擎
  3. mysql 中average_mysql – 计算SQL中的移动平均值
  4. 信息学奥赛一本通 1055:判断闰年 | OpenJudge NOI 1.4 17
  5. 幸运数字(洛谷-P3292)
  6. 看病(信息学奥赛一本通-T1371)
  7. 笨小猴(信息学奥赛一本通-T1407)
  8. 18 计量单位xx未对语言xx定义/在语言xx中没有维护短文本
  9. python怎么学习一门语言_如何学习Python这一门语言
  10. 如何在ubuntu上用c++串口通信_让你搞懂PLC串口通讯和通讯接口,这东西估计没几个能说清楚~...