0

When i use set_mrl(...) function sometimes the window is reopen i need to keep the window never closed because i used to make share screen automation app. the note i use python 3.11 with latest libvlc version, and this is my player code

import vlc
import typing as t
import logging
import os

_LOG = logging.getLogger("player.vlc_player")

# https://stackoverflow.com/questions/59377717/how-to-disable-error-messages-output-by-python-vlc-mediaplayer-object
os.environ['VLC_VERBOSE'] = '-1'

class VlcPlayer:
    def __init__(self, stream_uri: str) -> None:
        self.stream_uri = stream_uri
        self.player: vlc.MediaPlayer = vlc.MediaPlayer(stream_uri, "--play-and-pause")
        self.player.toggle_fullscreen()
    
    def play(self) -> None:
        self.player.play()
        
    def pause(self) -> None:
        self.player.pause()

    def resume(self) -> None:
        self.player.play()
    
    def is_playing(self) -> bool:
        return self.player.is_playing()
    
    def get_stream_uri(self) -> str:
        return self.stream_uri
    
    def set_stream_uri(self, stream_uri: str) -> None:
        self.stream_uri = stream_uri
        self.player.set_mrl(stream_uri)
        self.player.play()

    def get_time(self) -> t.Union[int, t.Any]:
        return self.player.get_time()

    def set_time(self, time: int) -> None:
        self.player.set_time(time)

    def get_length(self) -> t.Union[int, t.Any]:
        return self.player.get_length()

    def get_volume(self) -> t.Union[int, t.Any]:
        return self.player.audio_get_volume()

    def set_volume(self, volume: int) -> None:
        self.player.audio_set_volume(volume)

    def stop(self) -> None:
        self.player.stop()

also this is my usage

import time

player = VlcPlayer("./images/wating.jpg")

time.sleep(10)
player.set_stream_uri("some url")

time.sleep(1000)

I try set instances to "--play-and-pause" but is not work & i try this solution but not worked with me

win_id = player.get_hwnd()
player.set_hwnd(win_id)  # https://stackoverflow.com/questions/65056433/libvlc-keep-window-opened-between-videos

1 Answers1

0

Play is the function that opens a windows if you have not set one already. LibVLC needs a target to draw one. SetMRL does not trigger the opening of a window.

mfkl
  • 1,914
  • 1
  • 11
  • 21