Как зациклить воспроизведение в mplayer

Имею скрипт на Python, воспроизводящий аудио файл с помощью библиотеки mplayer.py. Есть задача зациклить воспроизведение этого файла. В исходниках библиотеки mplayer я не нашёл опции, которая скажет, что аудио нужно крутить столько-то раз. Если просто запустить mplayer из командной строки, то повторное воспроизведение файла задаётся опцией -loop, например так:

mplayer -loop 3 audio.mp3

Этот скрипт воспроизведёт файл audio.mp3 три раза. А как это сделать из Python? Вот мой скрипт:

from mplayer import Player, CmdPrefix

Player.cmd_prefix = CmdPrefix.PAUSING_TOGGLE # Менял этот параметр, не помогло
#player = Player() # Делал так
player = Player(['-loop', '3']) # И делал так
player.loadfile('audio.mp3') # Воспроизводит файл один раз, а нужно 3 раза. Как это сделать?

Как с помощью средств библиотеки воспроизвести аудио файл 3 раза?


Ответы (2 шт):

Автор решения: Olejan

Оказалось всё просто - нашёл свойство плеера loop. Задаю ему нужное значение и плеер повторяет трек нужное количество раз. Печалит то, что нет толкового описания библиотеки, чтоб можно было нормально ею пользоваться.

from mplayer import Player

player = Player()
player.loop = 3
player.loadfile('audio.mp3')
→ Ссылка
Автор решения: Pavel Nekrasov

В mplayer есть команда slave-режима loop, которая соответствует опции -loop и задаёт количество повторов: -1 — без повтора, 0 — бесконечно, N — повторить N раз; она также доступна как свойство loop у проигрывателя. В mplayer.py это свойство можно установить напрямую у Player, после чего выполнить loadfile, и трек будет повторён нужное число раз.

from mplayer import Player

p = Player()
p.loop = 3          # повторить трек 3 раза (как -loop 3)
p.loadfile('audio.mp3')

Это эквивалентно запуску mplayer -loop 3 audio.mp3 и заставит воспроизвести файл три раза.

→ Ссылка