Как зациклить воспроизведение в 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 шт):
Оказалось всё просто - нашёл свойство плеера loop. Задаю ему нужное значение и плеер повторяет трек нужное количество раз. Печалит то, что нет толкового описания библиотеки, чтоб можно было нормально ею пользоваться.
from mplayer import Player
player = Player()
player.loop = 3
player.loadfile('audio.mp3')
В 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 и заставит воспроизвести файл три раза.