流媒体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集合引用应用程序?   java无法插入到swagger 2.0文档中常见错误代码的html链接   循环中的java输入不匹配异常   java Spring批处理集成运行并行作业的远程分区   在Android中使用Gson在自定义类的ArrayList中读取java   C++规范化图像描述符OpenCV-java   java Andmore的Android软件包生成器失败,错误与sun/misc/BASE64Encoder相关   如何用java从多部分数据格式创建接收代码   java用文件填充数组   分页如何在Java代码中实现下一步按钮单击?   我们能用泛型参数动态调用Java接口方法吗?   java从另一个项目中定义的类调用静态方法需要为这两个项目添加库   反射:运行时类型信息是否存储在java中?   编写一个Java程序,允许用户输入自己的公式并进行计算   java Tomcat多个webapps文件夹   java比较两个xml文件并向第一个xml文件添加新标记   反射我能用正则表达式在java中找到类的方法吗?