![](/img/trans.png)
[英]How to remove '\x' from list =[ '\xbb', '\x02', '\x00', '\x11', '\xbe']
[英]How to stop Gstreamer from trying to initialize X11
我一直在嘗試創建一個想要從命令行運行的簡單音頻播放器,為此,我使用了Gstreamer
和pygst
python綁定,到目前為止,我的代碼如下所示:
import pygst
pygst.require('0.10')
import gst
import os
class Player(object):
mp3stream = "http://http-live.sr.se/p1-mp3-192"
def __init__(self):
self.pipeline = gst.Pipeline("RadioPipe")
self.player = gst.element_factory_make("playbin", "player")
self.pipeline.add(self.player)
self.player.set_property('uri', self.mp3stream)
self.pipeline.set_state(gst.STATE_PLAYING)
player = Player()
while 1:
if(1 == 2):
break
現在由於某種原因,當我運行此代碼時,我收到以下警告:
** (radio.py:7803): WARNING **: Command line `dbus-launch --autolaunch=f12629ad79391c6f12cbbc1a50ccbcc8 --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n
我可以毫無問題地播放音樂,但是我會擺脫這些警告,現在我假設Gstreamer
庫出於某種原因試圖啟動需要X11
東西,但對於音頻播放部分來說並不必要。 歡迎對此假設的有效性發表任何評論。
我可以導入其他內容或傳遞某種標志來阻止Gstreamer嘗試初始化X11
嗎?
編輯1
我嘗試添加以下內容:
fakesink = gst.element_factory_make("fakesink", "fakesink")
self.player.set_property("video-sink", fakesink)
根據文檔 ,上面的代碼將禁用自動啟用視頻流的功能。 但是,這不能解決我的警告問題。
編輯2
好的, element(?) playbin
器有點像現成的管道,其中包含一些與音頻和視頻相關的東西,很抱歉,我現在無法對其進行更好的解釋。 但是似乎playbin初始化了一些嘗試訪問X11
elements(?)
。 我猜想因為我沒有播放任何與視頻相關的信息,所以它不會崩潰。 我已經設法編輯了一些playbin elements(?)
但沒有一個可以解決X11
警告。
當前代碼如下:
self.pipeline = gst.Pipeline("RadioPipe")
self.player = gst.element_factory_make("playbin", "player")
pulse = gst.element_factory_make("pulsesink", "pulse")
fakesink = gst.element_factory_make("fakesink", "fakesink")
self.player.set_property('uri', channel)
self.player.set_property("audio-sink", pulse)
self.player.set_property("video-sink", fakesink)
self.pipeline.add(self.player)
元素后的問號與我有關,不確定該措詞是否正確。
您應該能夠在playbin的flag
屬性中禁用video
標志。 或者,如果您確實需要視頻並且知道需要哪個視頻接收器,請相應地設置video-sink
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.