从 URL 获取音频并播放

Posted

技术标签:

【中文标题】从 URL 获取音频并播放【英文标题】:Getting audio from a URL and playing it 【发布时间】:2019-03-05 15:48:16 【问题描述】:

有一个指向mp3 文件的链接,该文件需要从URL 流式传输,如http://example.com/music_radio.mp3 并在计算机上播放。网上虽然有流音频的例子,但是主要是针对Python2的,而对于Python3已经没有这样的库了,我试着这样做:

import vlc
p = vlc.MediaPlayer ("http://example.com/music_radio.mp3")
p.play ()

但它总是显示错误:

Traceback(最近一次调用最后一次):文件“PythonProjects / URL / main.py”,第 2 行,在导入 vlc 文件“PythonProjects/URL/venv/ lib/python3.6/site-packages/vlc/init.py”,第 3 行,公开 import ModuleNotFoundError: 没有名为“public”的模块

问题是public 模块没有安装。您如何解决这个问题,或者您如何通过引用接收和播放音频?

UPD:该链接建议使用非工作代码或使用 Python2 而非 Python3 的代码

UPD2:使用python-vlc时,出现此错误:

Traceback(最近一次调用最后一次):文件 “PythonProjects/URL/main.py”,第 4 行,在 导入 vlc 文件“PythonProjects/URL/venv/lib/python3.6/site-packages/vlc.py”, 第 203 行,在 dll,plugin_path = find_lib() 文件“PythonProjects/URL/venv/lib/python3.6/site-packages/vlc.py”, 第 194 行,在 find_lib 中 ctypes.CDLL('libvlccore.dylib') 文件 "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ctypes/init.py", 第 348 行,在 init 中 self._handle = _dlopen(self._name, mode) OSError: dlopen(libvlccore.dylib, 6): image not found

【问题讨论】:

How to play mp3 from URL的可能重复 @MatthewSmith,此链接不包含我的问题的解决方案。 查看***.com/questions/34348607/… @MatthewSmith 无论如何都会出错,但是在使用python-vlc时会出错 【参考方案1】:

如果这有帮助

from IPython.display import Audio
Audio(url="http://www.nch.com.au/acm/8k16bitpcm.wav")

【讨论】:

以上是关于从 URL 获取音频并播放的主要内容,如果未能解决你的问题,请参考以下文章

从 url 下载时如何播放音频?

从远程 url 播放音频文件时如何生成音频频谱?

从 url 中提取音频片段并使用纯 Web Audio API 播放

从 URL 流式传输和下载音频

解析主播放列表文件后获取视频和音频的单独 url

从 Parse.com 播放音频