Python 有没有办法通过Kivy播放现场音频流?

Python 有没有办法通过Kivy播放现场音频流?,python,kivy,audio-streaming,internet-radio,Python,Kivy,Audio Streaming,Internet Radio,我正在尝试创建一个应用程序,您可以从手机收听广播流。这对Kivy有可能吗 我正在为我的高中广播电台构建这个应用程序。我试过SoundLoader,但似乎不起作用 这是我用来播放直播流的代码 class ListenWindow(屏幕): sound=SoundLoader.load('stream.mp3') 播放 这是我收到的输出 [WARNING] Deprecated property "<AliasProperty name=filename>" of object "&l

我正在尝试创建一个应用程序,您可以从手机收听广播流。这对Kivy有可能吗

我正在为我的高中广播电台构建这个应用程序。我试过SoundLoader,但似乎不起作用

这是我用来播放直播流的代码

class ListenWindow(屏幕):
sound=SoundLoader.load('stream.mp3')
播放
这是我收到的输出

[WARNING] Deprecated property "<AliasProperty name=filename>" of object "<kivy.core.audio.audio_gstplayer.SoundGstplayer object at 0x03DFE378>" was accessed, it will be removed in a future version
[WARNING] [AudioGstplayer] b"No decoder available for type 'text/uri-list'."
[ERROR  ] [AudioGstplayer] b'Your GStreamer installation is missing a plug-in.'
[INFO   ] [Window      ] Provider: sdl2
[ERROR  ] [AudioGstplayer] b'Internal data stream error.'
[警告]已访问对象“”的已弃用属性“”,将在将来的版本中删除该属性
[警告][AudioGstplayer]b“没有可用于“文本/uri列表”类型的解码器。”
[错误][AudioGstplayer]b'您的GStreamer安装缺少插件。'
[信息][窗口]提供程序:sdl2
[错误][AudioGstplayer]b'内部数据流错误。'

我试图通过pip更新GStreamer,但这并没有解决问题。

Icecast/SHOUTcast流本质上是HTTP渐进流,其中媒体数据不断编码、流式传输到客户端并播放。当这种类型的流媒体开始时,web浏览器无法播放流媒体。因此,如果您直接链接到流,浏览器将持续下载一个永无止境的“文件”

为了解决这个问题,使用了M3U和PLS播放列表。其想法是,在浏览器中,您可以链接到已下载并随后在用户的媒体播放器中打开的播放列表。媒体播放器读取播放列表,找到流的实际URL,然后向流发出自己的HTTP请求并播放


当您使用Gstreamer之类的东西时,要播放流,您需要使用实际的流URL。也就是说,您需要自己解析M3U或PLS播放列表文件,找到流URL,然后打开它。在您的情况下,由于您知道您只使用一个电台,您可以在文本编辑器中打开该播放列表以查找流URL。

我从未使用过Kivy,但您尝试播放的流格式是什么?错误消息表示您没有使用正确的URL。这是SHOUTcast服务器吗?我用的是我下载的mp3文件。所以我试着播放这个文件。这是一个icecast服务器。你确定你下载的是MP3而不是M3U吗?它最初是一个M3U文件,但我把它改成了MP3。在我这样做之后,它仍然在VLC中播放。所以我觉得没关系。它仍然不起作用,但给出了一个不同的错误。对于使用Gstreamer 1.16.0.0[INFO][Audio]提供程序的注释
[INFO][AudioGstplayer]来说太长了:Audio\u gstplayer,Audio\u sdl2(Audio\u ffpyplayer忽略)[警告][Audio Audio]找不到用于回溯的加载程序(最近的调用最后一次):File“D:\fredi\Python Projects\wahsapp\WAHS.py”,第17行,在类ListenWindow(屏幕)中:文件“D:\fredi\Python Projects\wahsapp\WAHS.py”,第19行,在ListenWindow sound.play()AttributeError中:“NoneType”对象没有属性“play”