将winsound转换为linux平台?

2023-12-28

在我不久前编写的一个聊天脚本中,我使用winsound python 库在收到新消息时播放“ding”声音(ding.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 文件,那就太棒了:)

谢谢,肖恩。


最后,我最终使用了 pygame 库:

import pygame

pygame.init()


pygame.mixer.music.load("ding.ogg")

pygame.mixer.music.play()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将winsound转换为linux平台? 的相关文章

  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • 从字符串到类型的词法转换

    最近 我尝试用Python存储和读取文件中的信息 遇到了一个小问题 我想从文本文件中读取类型信息 从 string 到 int 或 float 的类型转换非常有效 但从 string 到 type 的类型转换似乎是另一个问题 当然 我尝试了
  • 如何从 PyCharm 项目中获取我的“exe”[重复]

    这个问题在这里已经有答案了 通过 PyCharm 在 Python 上编写一些项目 我想从中获取一个exe文件 我尝试过 另存为 gt XXX exe 但是 当我尝试执行它时出现错误 此类操作系统不支持该文件 附注 我有win7 x64 它
  • Python - 用逗号分割,跳过括号内的内容

    我需要用逗号分隔字符串 但我对这种情况有一个问题 TEXT EXAMPLE THIS IS A EXAMPLE BUT NOT WORKS FOR ME SECOND THIRD 我想拆分并得到 var 0 TEXT EXAMPLE THI
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 为什么 Python 中的“pip install”会引发语法错误?

    我正在尝试使用 pip 安装软件包 我试着跑pip install从Python shell 但我得到了SyntaxError 为什么我会收到此错误 如何使用 pip 安装软件包 gt gt gt pip install selenium
  • 如何限制Django CreateView中ForeignKey字段的选择?

    我有一个沿着这些思路的模型结构 models py class Foo models Model class Bar models Model foo models ForeignKey Foo class Baz models Model
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • “./somescript.sh”和“. ./somescript.sh”有什么区别

    今天我按照一些说明在 Linux 中安装软件 有一个需要首先运行的脚本 它设置一些环境变量 指令告诉我执行 setup sh 但是我执行时犯了一个错误 setup sh 所以环境没有设置 最后我注意到了这一点并继续进行 我想知道这两种调用脚
  • 具有多个元素的数组的真值是二义性错误吗? Python

    from numpy import from pylab import from math import def TentMap a x if x gt 0 and x lt 0 5 return 2 a x elif x gt 0 5 a
  • Python:计算数据帧列中所有行中特定字符的实例数

    我有一个包含列 toaddress ccaddress body 的数据框 df 我想迭代数据帧的索引 以获取 toaddress 和 ccaddress 字段中电子邮件地址的最小 最大和平均数量 这是通过计算这两列中每个字段中的 和 的实
  • 为什么我用 beautifulSoup 刮的时候有桌子,但没有 pandas

    尝试抓取条目页面转换为制表符分隔格式 主要拉出序列和 UniProt 登录号 当我跑步时 url www signalpeptide de index php sess m listspdb bacteria s details id 10
  • 将一个列表的元素除以另一个列表的元素

    我有两个清单 比如说 a 10 20 30 40 50 60 b 30 70 110 正如你所看到的 列表 b 由一个列表的元素总和组成 其中 window 2 b 0 a 0 a 1 10 20 30 etc 如何获得另一个列表 该列表由
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • 为什么实现 __iter__ 的对象不被识别为可迭代的?

    假设您使用包装对象 class IterOrNotIter def init self self f open tmp toto txt def getattr self item try return self getattribute
  • 全局变量是 None 而不是实例 - Python

    我正在处理Python 中的全局变量 代码应该可以正常工作 但是有一个问题 我必须使用全局变量作为类的实例Back 当我运行应用程序时 它说 back is None 这应该不是真的 因为第二行setup 功能 back Back Back
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul

随机推荐

  • 简单类 - 是内存泄漏吗?

    我有一个非常简单的类 它有一个整数变量 我只是将变量 i 的值打印到屏幕上并递增它 并使线程休眠 1 秒 当我针对此方法运行探查器时 即使我没有创建任何新变量 内存使用量也会缓慢增加 执行此代码大约 16 小时后 我发现内存使用量增加到 4
  • 如何禁用基于颜色的分组条形图表达?

    我有一个包含 3 列的 pandas 数据框 名称 组 值 我想制作一个水平条形图 从最高值到最低值排序 并根据组列中的值对每个条形进行着色 问题是 当我添加颜色参数时 条形也会按颜色排序 是否可以使条形不按颜色分组在一起 这是我尝试过的
  • 如何在Flutter中制作倒圆角的容器?

    这是制作圆角容器的方法 Container decoration BoxDecoration borderRadius BorderRadius circular 10 但是有没有办法制作如下图所示的倒圆角呢 我在网上找不到任何东西 作为一
  • jQuery - 触发器('click')在 IE 中不起作用 - 对象不支持此属性或方法

    我有一个图像 悬停时有一个淡入淡出的覆盖 div 其中显示文本链接 单击链接时 它会打开一个包含内容的影子框 我希望整个覆盖 div 都是可点击的 所以我使用了 div overlay each function this click fu
  • 错误 SocketEnginePolling:长轮询请求期间出错

    let manager SocketManager socketURL URL string Some url config log true compress var socket SocketIOClient var name Stri
  • 使用 Socket 将数据从 [Python 客户端] 发送到 [C# 服务器]

    我想使用简单的套接字应用程序将字节数据从 Python 客户端发送到 C 服务器 C 服务器与 C 客户端运行良好 但是当我尝试使用 Python Socket 将数据发送到 C 服务器时 数据永远不会到达 我不太习惯 Python 有人可
  • PhoneGap、Bootstrap 还是 JQuery Mobile? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个用 HTML CSS 和 JavaScript 编码的 Web 应用程序 我对这个应用程序的目标是最终让它在各种移动设备上运行 并保留网
  • 我可以将 webpack 源映射和源代码文件放在单独的文件夹中吗?

    我读了这个问题生产中的源映射文件 安全吗 https stackoverflow com questions 27345520 source maps files in production is it safe 我想用源代码在不同的文件夹
  • 在 Grails 中验证 IP 地址

    我正在寻找一种通过约束验证 Grails 中的 IP 地址的方法 这样的事情可能吗 package example class Ip String ip static constraints ip unique true inetAddre
  • C#:shlwapi.dll 中 StrCmpLogicalW 的实现或替代

    为了在我的应用程序中进行自然排序 我当前在 shlwapi dll 中 P Invoke 一个名为 StrCmpLogicalW 的函数 我正在考虑尝试在 Mono 下运行我的应用程序 但当然我不能拥有这个 P Invoke 东西 据我所知
  • Python 继承 - 如何禁用函数

    在 C 中 您可以通过在子类中将其声明为私有来禁用父类中的函数 在 Python 中如何做到这一点 IE 如何从孩子的公共界面隐藏父母的功能 Python 中确实不存在任何真正的 私有 属性或方法 您可以做的一件事就是简单地重写子类中不需要
  • 声明空析构函数可防止编译器调用 memmove() 来复制连续对象

    考虑以下定义Foo struct Foo uint64 t data 现在 考虑以下定义Bar 它具有相同的数据成员Foo 但有一个empty 用户声明的析构函数 struct Bar Bar lt empty user declared
  • 反转位数组中的位顺序

    我有一长串位存储在无符号长整数数组中 如下所示 struct bit array int size nr of bits unsigned long array the container that stores bits 我正在尝试设计一
  • 将图像从 url 转换为 Base64

    使用图像文件 我获取需要发送到网络服务的图像的 URL 从那里图像必须保存在我的系统本地 我正在使用的代码 var imagepath imageid val from this getting the path of the select
  • Cordova iOS 将单页屏幕方向更改为横向

    我有一个用 Cordova 3 为 iPhone 开发的应用程序 目前该应用程序运行良好 我还限制了当前应用程序的横向视图 即应用程序仅以纵向显示 应用程序由大量描述和报告页面组成 我想要的是纵向显示所有页面并横向显示报告页面 我使用 Ba
  • 在MFC中创建窗口时如何获得最大可能的窗口大小?

    我需要获得正在创建的窗口的最大可能高度和宽度 窗口不会首先最大化 怎么做 您可以使用获取系统指标 https msdn microsoft com en us library windows desktop ms724385 v vs 85
  • 将 SQL 转换为 LINQ 查询 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有以下 SQL 查询 我需要将它放在 LINQ 中 我尝试了几件事 但无法让它工作 这是 SQL 查询 SELECT ST Descrip
  • 如何在 ColdFusion <2016 中保留结构中的分配顺序

    ColdFusion 不保留元素分配给结构的顺序 在我的特定情况下 当我需要从此结构创建 SOAP 信封并且接收者需要以特定顺序接收信封中的数据时 这就产生了问题 从 ColdFusion 2016 及更高版本开始 StructNew 方法
  • 如何使用固定位置的 jQuery 可拖动?

    它在 Firefox 中完美运行 但在 ie chrome 和 Opera 中不起作用 div has position fixed and is draggable 除了 Firefox 之外它不起作用 不要在 CSS 中设置固定 它适用
  • 将winsound转换为linux平台?

    在我不久前编写的一个聊天脚本中 我使用winsound python 库在收到新消息时播放 ding 声音 ding wav 现在我想知道如何才能使其在 Linux 上工作 仅使用 ogg 音频文件 代码如下 import sys impo