【问题标题】:Using libVLC media_list instead of a media_player to play a directory of songs使用 libVLC media_list 而不是 media_player 播放歌曲目录
【发布时间】:2017-05-28 16:07:33
【问题描述】:

我正在尝试使用 libVLC v2 C 绑定来播放给定路径的目录中的所有歌曲 (mp3/m4a/ogg)。

我目前只使用模块 libvlc_media_player,使用 libvlc_media_player_set_media 等方法从给定路径设置歌曲。

我看到有一个名为libvlc_media_listmodule,带有libvlc_media_list_set_media

什么是libvlc_media_list,如何使用目录路径设置它(其中包含多个音频文件)? libvlc_media_list_player 采用libvlc_media_player,但我不知道在哪里设置媒体(路径)。

【问题讨论】:

    标签: vlc libvlc


    【解决方案1】:

    media_list 用于播放 play lists(.pls .m3u 等),而不是单个文件。
    不确定c,但在 python 中:

    Media_list = Instance.media_list_new([url])
    list_player = Instance.media_list_player_new()
    list_player.set_media_list(Media_list)
    list_player.play()
    

    相对于:

    player = Instance.media_player_new()
    Media = Instance.media_new(url)
    Media.get_mrl()
    player.set_media(Media)
    player.play()
    

    对于单个文件。
    希望你能从上面挑骨头。
    出于您的目的,您似乎需要使用单个文件选项,使用 url 列表,同时遍历列表。

    再次在 python 中(道歉):

    import vlc
    import time
    my_list = ['vp1.mp3','happy.mp3']
    instance = vlc.Instance()
    player = instance.media_player_new()
    playing = set([1,2,3,4])
    for i in my_list:
        player.set_mrl(i)
        player.play()
        play=True
        while play == True:
            time.sleep(1)
            play_state = player.get_state()
            if play_state in playing:
                continue
            else:
                play = False
    

    【讨论】:

    • 因此,您给出的解决方案不是使用 list_player,而是循环列表并单独播放每首歌曲,我可以以某种方式将其设置为在第一首歌曲播放完毕后播放下一首歌曲吗?
    • 查看添加到答案中的非常简单的示例
    • 非常感谢,太好了!事实上,python 没问题,这样可能更好:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    相关资源
    最近更新 更多