簡體   English   中英

有沒有辦法通過Kivy播放實時音頻流?

[英]Is there a way to play a live audio stream through Kivy?

我正在嘗試創建一個應用,您可以在其中收聽手機中的廣播流。 Kivy有可能嗎?

我正在為我的高中廣播電台構建此應用程序。 我已經嘗試過SoundLoader,但這似乎沒有用。

這是我播放直播的代碼。

class ListenWindow(Screen):
    sound = SoundLoader.load('stream.mp3')
    sound.play()

這是我收到的輸出。

[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.'

我試圖通過pip更新GStreamer,但這不能解決問題。

Icecast / SHOUTcast流本質上是HTTP Progressive流,其中媒體數據被連續編碼,流傳輸到客戶端並進行播放。 當這種類型的流式傳輸開始時,Web瀏覽器無法播放該流。 因此,如果直接鏈接到流,瀏覽器將連續下載永無休止的“文件”。

為了解決這個問題,使用了M3U和PLS播放列表。 這個想法是在瀏覽器中,您可以鏈接到一個播放列表,該播放列表已下載並隨后在用戶的媒體播放器中打開。 媒體播放器讀取播放列表,找到流的實際URL,然后向流發出自己的HTTP請求並進行播放。

當您使用類似Gstreamer的設備時,要播放流,您需要使用實際的流URL。 也就是說,您需要自己解析M3U或PLS播放列表文件,找到流URL,然后將其打開。 在您的情況下,由於您知道僅使用一個電台,因此可以在文本編輯器中打開該播放列表以查找流URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM