pygame播放MP3时如何调播放位置?

简短版本:“线性”是你想要的。*所以,你想要的功能是adpcm2lin


你如何使用它? audioop中的几乎所有内容都以相同的方式工作:循环遍历帧,并在每个帧上调用一个函数。如果您的输入数据具有某些固有的帧大小,例如当您从MP3文件(使用外部库)读取时,或者输出库需要某些特定的帧大小时,您对帧的确定方式有点受限。但是,当您处理原始PCM格式时,帧可以是您想要的任何大小,从单个样本到整个文件。** 为简单起见,我们先做整个文件:

如果您的adpcm文件太大而无法加载到内存中并立即处理所有文件,则需要跟踪state,因此:


当然,我假设你不需要转换采样率或做任何其他事情。如果您这样做,任何此类转换都应在ADPCM解压缩之后进行。***


*长版本:“线性”表示样本直接编码,而不是通过另一种算法映射。例如,如果您有一个16位的A-to-D,并且您将音频保存在8位线性PCM文件中,那么您只需保存每个样本的前8位。这给你一个非常动态的范围,所以更安静的声音在噪音中迷失。有各种压缩扩展算法可以为相同数量的位提供更宽的动态范围(当然,代价是丢失其他地方的其他信息);有关它们如何工作的详细信息,请参阅μ-law算法。但如果你能保持16位,线性就好了。 **实际上,对于4位原始ADPCM,你真的不能做一个样本...但你可以做2个样本,这是足够接近的。 ***如果你真的很挑剔,你可能想先转换为32位,然后再做工作,然后转换回16位以避免累积损失。但是当你开始使用4位ADPCM时,你不会在这里寻找发烧友的声音。

组件开发结束后,要部署在用户机器上使用,有两种部署方式,分别是...

  • 一、安装:略(可百度下载破解版,百度不到可以私聊本人进行获取)二、使用:2.1、打开软件: 2.2、勾选“新建文件...

  • 用豆瓣FM快十年了,听了3万多首歌,红心标记了近400首歌,然而由于版权问题只剩150首左右还能播放。以前用过一个...

  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...

  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...

  • 今天上午陪老妈看病,下午健身房跑步,晚上想想今天还没有断舍离,马上做,衣架和旁边的的布衣架,一看乱乱,又想想自己是...

  • 年纪越大,人的反应就越迟钝,脑子就越不好使,计划稍有变化,就容易手忙脚乱,乱了方寸。 “玩坏了”也是如此,不但会乱...

我要回帖

更多关于 python pygame模块 的文章

 

随机推荐