没有见过比这个更小型的库了,下面程序实现的功能:播放音乐,按空格键实现暂停和播放的切换。

#coding=utf-8
import mp3play
import pythoncom, pyHook input = 0
pauseFlag=1
def onKeyboardEvent(event):
global input,pauseFlag
input = chr(event.Ascii)
if input==' ':
pauseFlag=-pauseFlag
if pauseFlag<0:
mp3.pause()
if pauseFlag>0:
mp3.unpause()
# print "MessageName:", event.MessageName
# print "Message:", event.Message
# print "Time:", event.Time
# print "Window:", event.Window
# print "WindowName:", event.WindowName
print "Ascii:", event.Ascii, chr(event.Ascii)
# print "Key:", event.Key
# print "KeyID:", event.KeyID
# print "ScanCode:", event.ScanCode
# print "Extended:", event.Extended
# print "Injected:", event.Injected
# print "Alt", event.Alt
# print "Transition", event.Transition
# print "---"
return True filename = 'test.mp3'
mp3 = mp3play.load(filename)
mp3.play()
print mp3.seconds()
monitor = pyHook.HookManager()
monitor.KeyDown = onKeyboardEvent
monitor.HookKeyboard()
pythoncom.PumpMessages()

需要引用的库:pyWin32和pyHook,在sourceforge上下载。

pyHook的使用范例:python监听键盘和鼠标

pythoncom.PumpMessages()比较有意思,就是让线程死在这里,一直等待键盘或鼠标行为,如果debug的话会发现程序运行到这句话的时候debugger就挂掉了。所以如果需要对监听的结果执行一些行为,就需要写在触发事件函数里,不然无法响应。

mp3play提供的几个函数极其简单,不过也够用了,就这么几个:

有如下功能:

1.返回歌曲的长度(时间)

2.判断歌曲是否在播放,是否被暂停

3.暂停以及继续(unpause)

4.音量

5.停止,停止和暂停的区别就是停止了就不能继续了

注:这个库只能在windows下面用。

python的mp3play库试用的更多相关文章

  1. 使用boost.python封装C++库

    使用boost.python封装C++库 C++以高性能著称,但是编写较为复杂.而简洁是Python的强项.如果能珠联璧合,就能发挥两家之长.本文尝试用boost库的python模块封装C++ 前期准 ...

  2. python 各种开源库

    测试开发 来源:https://www.jianshu.com/p/ea6f7fb69501 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. 链接 sel ...

  3. 在windows系统上使用pip命令安装python的第三方库

    在windows系统上使用pip命令安装python的第三方库 通过cmd启动命令行后,直接输入pip命令,有时候命令行会提示我们pip不是一个指令,这个时候我们可以通过python的集成开发环境里面 ...

  4. python 三方面库整理

    测试开发 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. –推荐 mechanize- Python中有状 ...

  5. 第四章 python的turtle库的运用

    我们可以尝试用python的自带turtle库绘制一条蟒蛇 首先我们设计一下蟒蛇的基本形状 我们先把这段蟒蛇绘制的实例代码贴出来,各位可以在自己的本地运行一下看看效果,然后我们再继续分析代码: 1 # ...

  6. Python底层socket库

    Python底层socket库将Unix关于网络通信的系统调用对象化处理,是底层函数的高级封装,socket()函数返回一个套接字,它的方法实现了各种套接字系统调用.read与write与Python ...

  7. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

  8. 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  9. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

随机推荐

  1. RabbitMQ其他(八)

    1 RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer) 什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序 ...

  2. php中mysql_fetch_row() 和mysql_fetch_array之间有什么区别

    mysql_fetch_row是从结果集取出1行数组,作为枚举 mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得eg:$sql="select ab ...

  3. ubuntu安装amd/ati显卡驱动

    原网页: http://forum.ubuntu.org.cn/viewtopic.php?f=126&t=390372 整合了几个帖子,大概如此:用以下命令卸载所有驱动: 代码: sudo ...

  4. CF Round #456 (Div. 2)

    这时我第一次打CF 然后一看t1 哇好水 然后秒A了 看B 哇好像也很水 然后A了 看了C 不会... 然后去看D 似乎概率 然后推了一下,退出来了 然后看E 不会... 接着问了半个小时怎么hack ...

  5. LeetCode OJ:Merge Intervals(合并区间)

    Given a collection of intervals, merge all overlapping intervals. For example,Given  [1,3],[2,6],[8, ...

  6. 设置tableview 右侧 索引字体的大小

  7. shell脚本中四则运算

    方法一: (())       ##在括号里面可以直接对变量进行操作 例如:vim  test.sh 方法二: let       ##let后面加要操作的运算 例如:  方法三: expr      ...

  8. Spring核心概念(二)

    IOC/DI IOC(控制反转):对象(组件)的创建由代码中转移到外部容器(XML,注解) . DI(依赖注入):当类A需要使用类B时,那么我们需要为类A的属性赋值类B的对象. 这种现象我们称为依赖注 ...

  9. React之setState()

    我们知道,在react中更新单个组件下state中的数据可以用setState()函数来实现,并且可以通过两种传参方式:对象.函数. 另外从文档中我们也可以了解到react可以将多个setState( ...

  10. 桔子桑Blog(小程序)V 0.4

    这两天对这个个人博客小程序的UI又作了一些补充,目前看来,小程序的主要功能如下: 1.博客/日常栏目的导航切换 为了避免两个模块的UI上的过于单一,我将两个模块的列表页作了区分: 边距是自适应的(针对 ...