使用 mplayer 在 python 脚本中播放 m4a

Play m4a in python script with mplayer

我正在 URL 上发帖,下载音频文件 (m4a) 并尝试使用 Python 脚本从终端播放它。当我输入

mplayer asdf.m4a 

在终端中播放正常。但是当我执行下面的代码时

from mplayer import Player

player = Player()
player.loadfile('asdf.m4a')

如 mplayer 指南所示,我收到以下错误:

mplayer: could not connect to socket
mplayer: No such file or directory

几天来我一直在努力解决这个问题,看起来应该很简单。我不知道出了什么问题。我可以使用 pygame 来播放 mp3 和 ogg,但我需要播放 m4a,但我似乎无法让 mplayer 为我工作。

我看到的唯一相关问题建议将 nolirc=yes 添加到 mplayer 配置文件中。没有帮助。

如有任何帮助,我们将不胜感激。

最糟糕的方法,但可能有用:

from subprocess import Popen, PIPE

pipes = dict(stdin=PIPE, stdout=PIPE, stderr=PIPE)
mplayer = Popen(["mplayer", "asdf.m4a"], **pipes)

# to control u can use Popen.communicate
mplayer.communicate(input=b">")
sys.stdout.flush()

尝试使用文件的绝对路径。如果您在 IDE 或调试器中 运行 此脚本,有时它会弄乱相对路径。

我会尝试:

import os
from mplayer import Player

player = Player()
abspath = os.path.join(os.path.dirname(__file__), 'asdf.m4a')
player.loadfile(abspath)