Как я могу воспроизвести песню в фоновом режиме через командную строку?

13

Я установил play:

sudo apt-get install sox libsox-fmt-mp3

Теперь я могу воспроизвести мои аудио файлы, как это:

play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3

Так как я изучаю оболочку, я хотел бы сделать что-то вроде этого:

 (sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) &

Через 10секунду я вижу экран как:

 File Size: 7.38M     Bit Rate: 260k
  Encoding: MPEG audio    Info: 2012
  Channels: 2 @ 16-bit   Track: 01/09
Samplerate: 44100Hz      Album: Maalai Pozhudhin Mayakathilaey :::tunesinn.blogspot.com:::
Replaygain: off         Artist: Hemachandra, Achu
  Duration: 00:03:46.98  Title: Oh Baby Girl

Но песня не играет. Но если я сделаю это (без &):

(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) 

Работает как положено. Но я не мог использовать свой терминал в то же время.

Как я могу решить мою проблему, используя &?

муравьев
источник
5
Если вам нужен только проигрыватель CLI, чтобы воспроизводить звук в фоновом режиме, я настоятельно рекомендую вам попробовать cmus. У него даже есть скрипт cmuscrobblerдля last.fm, и вы можете отобразить глобальные горячие клавиши в системе X Window через cmus-remote. Или вы можете попробовать использовать утилиту, как screen.
Иеремия
cmusотличная программа - я должен расширить этот комментарий в полный ответ!

Ответы:

13

Фоновый playс &ошибками, потому что playхочет вывести свой статус

In:12.7% 00:00:27.31 [00:03:07.52] Out:1.20M [!=====|=====!] Hd:0.0 Clip:0  

но не может, если фон. Так что он продолжает ждать, пока не прервано.

Чтобы решить эту проблему, просто запустите playс -q(тихим) переключателем. Это успешно создаст фон и playзакончится, когда закончится песня.

(сон 10; play -q Desktop / SONGS / 01 \ - \ Oh \ Baby \ Girl.mp3) &

Вы можете остановить это, набрав killall play(если другие запущенные экземпляры не запущены) или kill $!(если вы не подключили другие процессы в том же терминале после запуска воспроизведения - $! Дает PID последнего фонового процесса)

иш
источник
Это работает. Но почему же я перестал играть песню?
Муравей
2
Вы можете остановить его, набрав killall play(если не запущены другие экземпляры воспроизведения ) или kill $!(если вы не подключили другие процессы в том же терминале после запуска воспроизведения - $!выдает PID последнего фонового процесса)
ish
3

Есть лучший способ запуска вещей в фоновом режиме из командной строки.

sudo apt-get install screen

Это одна из самых изящных программ командной строки для Linux. это позволяет вам иметь что-то похожее на «вкладки в браузере» и легко переключаться между ними без прерывания работы программ. Это не вкладки в самой программе терминала, хотя. Но внутри этой конкретной оболочки вы начали.

после установки запустите его, набрав

screen 

в терминале.

вы создаете новые "вкладки" с помощью Ctrl-A c вы переключаетесь на следующую вкладку с помощью Ctrl-A n

Вот более подробное руководство, если вам трудно понять справочные страницы

Tomodachi
источник
0

Мои действия Nautilus для добавления «Play» и «Stop» в контекстное меню для аудио файлов

Добавить Play ...

Определите новое действие следующим образом

«Действие вкладка»

  1. Флажок отмечен для «Отображать элемент в контекстном меню выбора»
  2. Новая метка контекста действия = Play
  3. Подсказка = Воспроизвести аудио
  4. Значок = медиа-воспроизведение-начало

«Командная вкладка»

  1. Label = Play
  2. Путь = / usr / bin / play -q
  3. Параметры =% f
  4. (Необязательно W / Effects) Параметры =% f rate -v vol .25 басы +5 высоких частот +5 реверберации
  5. Рабочий каталог =% d

«Вкладка« Выполнение »

  1. Флажок отмечен как «Нормальный»

"Mimetypes Tab"

  1. Добавить аудио / MPEG
  2. Добавить аудио / флак
  3. Добавить аудио / x-wav

Или добавьте больше, если это необходимо, или оставьте это в покое, чтобы везде появляться.

Остальное можно оставить в покое.


Добавить Стоп ...

Определите новое действие следующим образом

«Действие вкладка»

  1. Флажок отмечен для «Отображать элемент в контекстном меню выбора»
  2. Метка контекста = Стоп
  3. Подсказка = Остановить звук
  4. Значок = медиа-воспроизведение-остановка

«Командная вкладка»

  1. Метка = Стоп
  2. Путь = killall
  3. Параметры = игра
  4. Рабочий каталог =% d

«Вкладка« Выполнение »

  1. Флажок отмечен как «Нормальный»

"Mimetypes Tab"

  1. Добавить аудио / MPEG
  2. Добавить аудио / флак
  3. Добавить аудио / x-wav

Или добавьте больше, если это необходимо, или оставьте это в покое, чтобы везде появляться.

Остальное можно оставить в покое.

Исключен
источник
Отрегулируйте по мере необходимости. Поиграйте с параметрами эффектов, см. Man-страницу
удалено
2
Как это отвечает на вопрос о запуске этого из командной строки ? Ваш ответ, кажется, о Nautilus, файловом менеджере с графическим интерфейсом. Это хороший ответ, но для другого вопроса.
gertvdijk
Потому что это быстрый и крутой способ сделать это, даже если это не ответ командной строки. Не удалось найти вопрос, который бы соответствовал ответу в этом случае.
удалено
0

я использую

cvlc --play-and-exit "$filename" &>/dev/null &

VLC довольно вездесущ.

Гленн Джекман
источник
0

На рынке много игроков. Вы можете попробовать открытый исходный код с открытым исходным кодом и кросс-платформенный. Это mplayer. Попробуйте эту команду, чтобы проверить, есть она или нет.

mplayer --help 
man mplayer

Вы увидите руководство или документацию по этой команде. Вы можете воспроизвести аудио файл. Проверьте свои драйверы. Вы должны иметь драйверы, прежде чем использовать его. Если у вас нет этого плеера, установите его с помощью команды apt в Ubuntu 16.04 LTS или команды apt-get.

sudo apt install mplayer

или

sudo apt-get install mplayer

используйте его, просто набрав mplayer и имя файла после этого.

mplayer file_path
Хафиз Шехбаз Али
источник
0

Это сработало для меня с mplayer

nohup mplayer  SomeSong.mp4 > /dev/null 2>&1 &
Brandon
источник