Воспроизвести указанный подраздел mp3 в Python 3, Windows 7 - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть файл MP3 длиной, скажем, пять секунд.Я хочу сыграть в указанном подразделе, скажем, со второго 1.4 до второго 3.2.Я работаю в Python 3, а не в Python 2, и в Windows, а не в Linux.

Я понимаю, что не существует модуля для Python 3, который решает мою проблему, но я подумал, что, возможно, смогу получитьMP3-плеер, такой как mpg123, работает как бэкэнд и позволяет моей программе Python управлять им.Хотя удаленные команды для mpg123 слишком ограничены.Есть еще идеи?Есть ли даже программа для Windows, которую я мог бы использовать в командной строке, например:

program -start 1.4 -end 2.3 file.mp3

и вызов из подпроцесса?

1 Ответ

1 голос
/ 05 апреля 2012

Если у вас установлен бинарный файл mplayer или вы можете упаковать mplayer вместе, тогда вы можете использовать mplayer.py . Он работает на Python 2 и 3 на Windows и Linux тоже. После того, как вы инициализировали Player, вы можете искать с помощью свойства time_pos (float), и вам нужен метод паузы и остановки. Как то так:

player = mplayer.Player()
player.loadfile("musicfile.mp3")
player.time_pos = start
while player.time_pos < stop : pass
player.stop()

Недостатком является то, что нет поддержки пользовательского интерфейса и горячих клавиш, потому что mplayer работает в фоновом режиме, а связь осуществляется через сокет. Если вам больше ничего не нужно, вам лучше использовать сам mplayer с параметрами -ss start и -endpos длина в секундах , например:

mplayer "music.mp3" -ss 20 -endpos 2

Это будет происходить с 00:20 до 00:22. Вы не можете указать миллисекунды, но если вы действительно хотите воспроизвести один или несколько музыкальных файлов из точки A в точку B, то это (с пакетной или шикарной) является лучшим решением только потому, что на одну зависимость меньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...