流媒体MP3解码器

streamp3的Python项目详细描述


流量3

这个库使用lame库实现流式mp3解压。

状态

PyPICircleCICoveralls

安装

PIP

pip install streamp3

用法

要开始解码mp3,请构造一个mp3decoder,并将其以二进制形式传递 流或bytes对象。然后您可以访问bit_ratesample_rate, 以及num_channels属性以获取有关mp3的信息。

fromstreamp3importMP3Decoderwithopen('my.mp3','rb')asmp3_file:decoder=MP3Decoder(mp3_file)print(decoder.bit_rate,decoder.sample_rate,decoder.num_channels)

然后可以使用read()方法直接从流中读取样本 或者使用解码器作为迭代器。样本作为bytes对象返回, 它是16位的pcm编码,采样交叉在信道中。这个 示例使用 PyAudio

importpyaudiofromstreamp3importMP3Decoderwithopen('my.mp3','rb')asmp3_file:decoder=MP3Decoder(mp3_file)audio=pyaudio.PyAudio()device=audio.get_default_output_device_info()speaker=audio.open(output=True,input_device_index=device['index'],format=pyaudio.paInt16,channels=decoder.num_channels,rate=decoder.sample_rate)forchunkindecoder:speaker.write(chunk)

开发

设置

我们通常使用pyenv创建虚拟环境。以下脚本 为项目创建虚拟环境并安装依赖项。

pyenv install 3.6.4
pyenv virtualenv 3.6.4 streamp3
pip install -r requirements.txt

LAME也必须安装。这可以在OSX上通过自制完成。

brew install lame

部署

项目使用setup.py进行安装,并部署到 PyPI。该项目可用于安装 以下命令:

python setup.py clean --all; rm -r ./dist
python setup.py sdist bdist_wheel

然后可以使用tween将wheel和source分发上传到pypi。

twine upload --repository-url=https://upload.pypi.org/legacy/ dist/*

许可证

版权所有2018 Pylon,Inc.

根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在

  http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何向xsi:nil元素添加另一个属性?   Java抽象泛型方法,使用具体类型实现通配符   java使用pcap4j截断pcap文件   当我放置字母a、b和c时,java中的异常预期会下降   java设置活动对话框不可取消   接口类型变量上的Java克隆   使用Java或BouncyCastle对CSR(证书签名请求)进行安全解码/读取   java调用SavingsAccount对象上的函数并打印结果   java如何在Android应用程序上显示地图上的兴趣点(POI)并与之交互?   如果在JavaFX中的ResultSet中未找到任何内容,则显示java警报   java我将springboot和@component与@scheduled一起使用,它每12小时锁定一次   ApachePOI如何使用java删除包含字符串的word表的行   java如果对象(x,y)靠近其他对象(x,y)   从未对JMSException调用java JMS CachingConnectionFactory OneException方法   javascript使用java将HTML页面转换为MS word