生日的时候女票送了一副新耳机,还挺帅气。
装逼界的人都知道,新耳机是有“煲”这个步骤的
至于有没有效果?怎么煲?煲多久?这些问题都是耳机界常年争执的问题,各路高手分成各种门派常年杀伐不休,一不注意就可能引发圣战……
这都是背景

我一直以来都觉得自己是个“木耳”,也就是传说中的分不清音质好坏的家伙,属于耳机界的“麻瓜”
平时不小心勿入听音器材的论坛或者是淘宝店的评论区都能深刻地感觉到自己不但读书少,连身体器官的构造都和他们不同
你说隔音效果好我还能稍微理解一点
你说高频延伸不足缺乏动态延伸音场宽度不够人声比较靠前中频厚度好低频凝聚干净有力低频下潜深速度快无浓重染色
what the fuck???
但是,话又说回来,作为装逼界的成员,不煲机怎么显示我的牛逼?怎么证明耳机本身的牛逼?
机,还是得煲的

来,先看一下需求,卖耳机的客服发来的煲机步骤是这样的:
1.把耳机插在播放器上(这不是废话吗。。)
2.把白噪音和粉红噪音放在同一个播放列表,再选择“列表循环”模式(客服提供了白噪音和粉红噪音)
3.煲机累计180-200小时左右就可以煲好耳机,每次煲机2-4小时,耳机休息15分钟

前面两个步骤都很好理解也很好搞定,可是这是一个一两百个小时的工程,每隔几个小时还要休息十五分钟。
为什么是十五分钟呢?多一分钟少一分钟行不行呢?这些时间的差异对音质的好坏有影响吗?客服没有给答案。
但是很明显,这是一个精确的时间,十五分钟,这样一个精确的时间对于我来说简直是某种挑衅。
因为我是一个程序猿(自封的),还是一个喜欢钻牛角尖的程序猿,面对这种重复而又涉及精确数量的任务会产生一种怪异的偏执,这样你就知道为什么我从这该死的煲机步骤中感受到了恶意。

程序猿的困境还得用程序猿的方式来解决。
还会是什么,当然是代码啊!由于一直用的是python,于是自然而然想用python来实现这个东西。
需要实现煲机的功能,首先需要播放音频文件,也就是客服提供的白噪声和粉红噪声(连噪声的名字都这么萌)。在网上搜了一下python播放音乐的库,看到最多的就是pygame,好了就是它了!这其实是个比较强大的库,看它的名字就知道这是一个面向游戏制作的库,播放音频只是它提供的功能中很小的一部分,如果以后要写小游戏的话可以好好参考一下。当前的情况是需求驱动,我只需要研究我需要的那点功能就行了。于是阅读了这个库关于音乐播放的官方文档,简单易懂,说干就干。

# -*- coding: utf-8 -*-
"""
Created on Mon Oct 10 12:49:28 2016
@author: pcbai
"""
import pygame,pygame.mixer#警察叔叔,就是这个库!
import time
import os
def get_songs(path):#获得文件夹中所有的音乐文件,以供播放的时候加载songList = []lstDir = os.listdir(path)for filename in lstDir:if filename[-4:].upper() == '.WAV'\or filename[-4:].upper() == '.MP3':songList.append(os.path.join(path, filename))elif '.' not in filename:#如果是文件夹的话,递归调用try:new_path = os.path.join(path, filename)get_songs(new_path)except WindowsError:continuereturn songList
def burn_in(path):#煲机的功能程序,基本实现了功能,当然还比较粗糙'''A program to burn in new earphone'''songList = get_songs(path)pygame.mixer.init(22050,-16,2,2048)#初始化播放器pygame.time.delay(1000)#等待1秒让mixer完成初始化print 'Start play music 'count = 0while True:seconds = 0.0#记录所用的时间,如果小于900秒(120分钟),再播放一次文件夹loopStart = time.clock()        while seconds < 120*60.0:print "number of loops:",countfor song in songList:#把整个文件夹播放一次try:pygame.mixer.music.load(song)print 'now playing',songpygame.mixer.music.play()while pygame.mixer.music.get_busy():passexcept RuntimeError:print'Could not load...',songcontinuecount += 1seconds = time.clock() -loopStartprint 'Now have a rest for 15 minutes'time.sleep(900)#每一轮播放完休息15分钟,900秒
if __name__=='__main__':burn_in_path = r'C:\Users\pcbai\Desktop\Pygame_notes\baoji'burn_in(burn_in_path)

现在只要传入音乐所在的文件夹就可以插在电脑上一路煲下去了,如丝般顺滑。
啊,解放,双手的解放,对于时间控制的解放!

转载于:https://www.cnblogs.com/mooba/p/6484483.html

python实现煲机脚本相关推荐

  1. 在Linux上利用python获取本机ip

    下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码 ...

  2. 基于python的堡垒机

    一 堡垒机的架构 堡垒机的核心架构通常如下图所示: 二.堡垒机的一般执行流程 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,显示当前用户 ...

  3. 脚本编程语言python语言-python算的上脚本语言吗

    脚本语言泛指单用作简单編程任务如shell scripts.脚本语言是一种介乎于 HTML 和诸如 JAVA . Visual Basic . C++ 等编程语言之间的一种特殊的语言,尽管它更接近后者 ...

  4. python自动化运维脚本(仅供参考)

    1.生成磁盘使用情况的日志文件 #!/usr/bin/env python#!coding=utf-8import timeimport osnew_time = time.strftime('%Y- ...

  5. Python自动化运维脚本

    1. 生成磁盘使用情况的日志文件 #!/usr/bin/env python #!coding=utf-8import time import osnew_time = time.strftime(' ...

  6. Appium+Python连接真机、跳过登录页、Unexpected error while obtaining UI hierarchy问题

    Appium连接真机 使用数据线连接电脑,然后选择文件传输方式 打开手机设置拉至底部,点击关于手机,连续点击7次版本号打开开发者模式 点击设置中的系统与更新,找到开发者选项----> 打开USB ...

  7. python获取本机 ip地址、mac地址(物理地址)、计算机名、硬盘序列号、CPU序列号、主板序列号、bios序列号、bios uuid号

    文章目录 python获取本机IP地址.mac地址(物理地址).计算机名 物理地址 计算机名.ip地址 硬盘序列号 CPU序列号 主板序列号 bios序列号 bios uuid号 python获取本机 ...

  8. 明明安装了模块,还是出现 错误 ImportError: No module named ‘pandas‘ 原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解

    明明安装了模块,还是出现 错误 ImportError: No module named 'pandas'  原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解 ...

  9. 微软考虑将 Python 作为 Excel 官方脚本语言

    微软正考虑将 Python 作为 Excel 官方脚本语言之一,在 Excel 用户反馈平台中,「Python 作为 Excel 的脚本语言」成为了最热议的话题,是排名第二的提议的两倍多 目前为止,超 ...

最新文章

  1. 攻击NLP模型:通用对抗触发器入门
  2. spring+mybatis整合读取不了配置文件
  3. C#实现(递归和非递归)快速排序和简单排序
  4. SQL中的left join
  5. 浅谈BPM和SOA架构下的电子政务系统
  6. debian9 配置ssh 允许 root直接远程登录
  7. ASP.NET Core 认证与授权[7]:动态授权
  8. flexible.js 移动端自适应方案
  9. wdatepicker ajax传参,DatePicker在Ajax加载的页面中不起作用
  10. 京东:2022年将在全国范围内招聘超两万名高校毕业生
  11. pyqt5——控件1
  12. NGINX+PHP+ZABBIX,推荐
  13. 第二部分 python基础 day10\11\12 运算符与基本数据类型
  14. LINUX下C语言用access()检查文件可读、可写权限
  15. 移动边缘计算——计算卸载
  16. 普加甘特图,项目管理解决方案。
  17. DH-SQL(学生信息表-课程表-选课表)
  18. python 执行shell_用Python调用Shell命令
  19. Axure高级功能(变量、动态面板[轮播图]、中继器)
  20. Ubuntu 下Android开发环境搭建

热门文章

  1. 读京东技术解密,感桑田沧海变迁
  2. 《电路基础》同相运算放大器
  3. 【树莓派不吃灰】兄弟连篇⑦ 日志管理
  4. nginx(八十三)error_page、proxy_intercept_errors深究
  5. NodeJS+Vue3+D3
  6. delve应该安装到哪_golang调试工具Delve
  7. HDU1338/卡片游戏/斗地主/拳王争霸
  8. 802.11信道划分
  9. Redis系列6-sentinel
  10. Excel无法输入中文