Python VLC 不会播放音频?

Posted

技术标签:

【中文标题】Python VLC 不会播放音频?【英文标题】:Python VLC won't play the audio? 【发布时间】:2020-06-10 03:25:59 【问题描述】:

我正在尝试使用 python VLC 播放 mp3 文件,但似乎什么也没发生,也没有错误消息。下面是代码:

import vlc
p = vlc.MediaPlayer(r"C:\Users\user\Desktop\python\projects\etc\lady_maria.mp3")
p.play()

我尝试了下面的代码,因为我从另一篇文章中读到:

import vlc
mp3 = "C:/Users/user/Desktop/python/projects/etc/lady_maria.mp3"

instance = vlc.get_default_instance()
media = instance.media_new(mp3)
media_list = instance.media_list_new([mp3])

player = instance.media_player_new()
player.set_media(media)

list_player = instance.media_list_player_new()
list_player.set_media_player(player)
list_player.set_media_list(media_list)

我也尝试使用 pygame 混音器,但同样的原因,没有声音,也没有错误消息。

from pygame import mixer

mixer.init()
mixer.music.load(r'C:\Users\user\Desktop\python\projects\etc\lady_maria.mp3')
mixer.music.play()

所有这些都没有给出错误消息,所以我不确定发生了什么。任何建议将不胜感激!

【问题讨论】:

可以是音量吗? @Kingsley 我尝试了音频但仍然无法正常工作并且没有错误消息... :( 以 Pygame 的例子 - 你确实在等待音乐播放,对吗? mixer.music.play() 只是开始音乐播放,然后立即返回。见:***.com/a/8415875/1730895 @Kingsley 是的,我等了,但什么也没有,音量为 100。除了 vlc 和 pygame,您还推荐任何其他音频播放库吗? 特定的 mp3 是否可以与其他软件一起播放? 【参考方案1】:

如果音频文件在系统上播放正常:-

对于 pygame 库调整音量使用:

mixer.music.set_volume(1.0)  # float value from 0.0 to 1.0 for volume setting 

【讨论】:

嗨!感谢您的意见,我试过了,但即使将音量设置为 100 后仍然没有声音......这是另一个原因吗?【参考方案2】:

所以问题解决为:

from pygame import mixer

mixer.init()
mixer.music.load(r'C:\Users\user\Desktop\python\projects\etc\lady_maria.mp3')
mixer.music.play()
time.sleep(5)

添加time.sleep(5) 解决了问题!

Pygame, sounds don't play

【讨论】:

【参考方案3】:

我无法弄清楚 OP 中的代码给出的实际问题是什么。请试试这个测试代码。

import pygame
  
WINDOW_WIDTH  = 200
WINDOW_HEIGHT = 200

### initialisation
pygame.init()
pygame.font.init()
pygame.mixer.init()
window = pygame.display.set_mode( ( WINDOW_WIDTH, WINDOW_HEIGHT ) )

# Rain sound from: https://www.freesoundslibrary.com/sound-of-rain-falling-mp3/ (CC BY 4.0)
pygame.mixer.music.load( 'rain-falling.mp3' )
pygame.mixer.music.play( loops=-1 )             # loop forever

### Main Loop
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 40)
done = False
while not done:

    # Handle user-input
    for event in pygame.event.get():
        if ( event.type == pygame.QUIT ):
            done = True

    # Draw some text
    window.fill( ( 0, 0, 50 ) )
    ms = font.render( str( pygame.time.get_ticks() ), True, ( 255,255,255 ) )
    window.blit( ms, ( 100, 100 ) )
    pygame.display.flip()

    # Clamp FPS
    clock.tick_busy_loop(30)

pygame.quit()

如果您从源中的链接下载 MP3,并且运行此脚本没有声音,则问题出在您的本地计算机设置上。在这种情况下,可能会验证您使用的是最新版本的 Python 和 PyGame。我已经用 Python 3.8.2 和 PyGame 1.9.6 对此进行了测试。

我不认为安装VLC Media Player 会伤害任何东西。这是我每天的“首选”媒体播放器。

【讨论】:

嗨,非常感谢您的帮助,这个很好用!!!我听到雨声响亮而清晰。现在我对自己做错了什么感到更加困惑...... ;-(

以上是关于Python VLC 不会播放音频?的主要内容,如果未能解决你的问题,请参考以下文章

从 URL 获取音频并播放

问题:VLC 播放器在 Ubuntu 20.04.3 LTS 中为视频和音频打开单独的窗口

使用 gstreamer 将 PCM 数据发送到 VLC 播放器

HTML5 VIDEO 标签不播放音频/静音

Linux常用视频播放器

vlc播放流程分析