VLC 2.2.3,python-vlc 1.1.2。libVLC的Python綁定 - 無法更改音頻輸出設備
我有一個虛擬音頻輸出,並試圖讓libVLC輸出它。到目前爲止,我可以看到虛擬輸出出現在libVLC中,但是選擇它會使音頻在默認輸出(即揚聲器)上播放。
這是我所擁有的相關部分:
self.Instance = vlc.Instance()
self.player = self.Instance.media_player_new()
devices = []
mods = self.player.audio_output_device_enum()
if mods:
mod = mods
while mod:
mod = mod.contents
devices.append(mod.device)
mod = mod.next
vlc.libvlc_audio_output_device_list_release(mods)
# this is the part I change on each run of the code.
self.player.audio_output_device_set(None, devices[0])
我已經多次運行代碼,更改設備ID爲每代碼註釋。但是,輸出設備實際上並沒有改變。這是一個頭痛的原因有兩個:
1)audio_output_device_set()不返回任何東西。當我運行這個函數時,我不知道我是否真的做了什麼。 2)我甚至不能運行audio_output_device_get()來檢查set函數是否在做任何事情,因爲這只是針對libvlc 3.我更喜歡我的程序使用2.2.3。
所以,我接下來做的是安裝VLC 3.0並運行上面的代碼。現在,audio_output_device_get()可以工作,我可以看到set函數實際上將輸出設備更改爲虛擬輸出。但聲音仍然在揚聲器上播放。
發生了什麼事?我該如何解決?
我在VLC論壇問過,得到了一個奇怪無用的回覆,告訴我'檢查日誌和文檔'。而已。我已經超越了相當缺乏的文件來實現這一目標。儘管我懷疑它可以提供幫助,但我決定嘗試記錄。我認爲這會像調用libvlc_log_set_file
一樣簡單,但它需要一個libVLC文件指針,我不知道如何使用Python中的名稱和模式創建一個指針。
tl; dr:
1)如何成功更換音頻輸出設備? 2)如何設置最大冗餘日誌記錄?