воспроизводить mp3-файл сразу после его загрузки

Как объединить эти две разные команды в один скрипт:

$ wget http://mymusic.store.com/musicfoo.mp3 #file gets saved as musicfoo.mp3 $ mplayer musicfoo.mp3 

wget пытается сохранить файл на диск с именем / расширением по умолчанию файла (как в Интернете) … в моем mp3-файле … mplayer использует этот файл в качестве аргумента для его воспроизведения.

Любая идея, как я могу объединить это с одним сценарием?

4 Solutions collect form web for “воспроизводить mp3-файл сразу после его загрузки”

Воспроизвести файл напрямую

Вам не нужно даже загружать эти файлы, прежде чем воспроизводить их с помощью mplayer . На странице mplayer man:

выдержка

  mplayer [options] [file|URL|playlist|-] 

Таким образом, mplayer может напрямую воспроизводить URL-адреса.

пример

 $ mplayer http://mymusic.store.com/musicfoo.mp3 

Представление

Вам, вероятно, придется настроить значения кеша, чтобы заставить mplayer плавно воспроизводить ваш контент. В mplayer есть несколько переключателей, которые позволяют это делать.

выдержка из mplayer man page

 -cache <kBytes> This option specifies how much memory (in kBytes) to use when precaching a file or URL. Especially useful on slow media. -cache-min <percentage> Playback will start when the cache has been filled up to <percentage> of the total. 

Поэтому, возможно, что-то вроде этого, вы будете играть с этими значениями, чтобы добиться плавного воспроизведения вашей ситуации.

 $ mplayer -cache 8000 -cache-min 30 http://mymusic.store.com/musicfoo.mp3 

Скачать и играть

Другой способ, обсуждаемый в некоторых других ответах, – использовать wget для загрузки, а затем воспроизвести файл. Врожденная проблема с этим подходом заключается в том, чтобы получить имя файла, после того как файл будет загружен.

скручивание в mplayer

При таком подходе в нем есть фактически 2 метода. Первый заключается в использовании wget или curl для запуска загрузки, а затем для передачи данных в mplayer .

пример

 $ wget http://mymusic.store.com/musicfoo.mp3 -O - | mplayer - 

Вы также можете кэшировать загрузку здесь, как и раньше:

 $ wget http://mymusic.store.com/musicfoo.mp3 -O - | mplayer -cache 8192 - 

curl 1st, затем mplayer

Другой способ – загрузить файл, а затем воспроизвести его. Вы можете использовать функцию Bash для ее переноса, поскольку теперь она становится двухэтапным процессом, когда файл полностью загружается первым, а затем воспроизводится потом.

пример

 $ function smplayer() { wget $@ && mplayer $(basename $@); } 

Затем, чтобы выполнить загрузку и воспроизведение, вы должны запустить такую ​​функцию:

 $ smplayer http://mymusic.store.com/musicfoo.mp3 

Пытаться:

 wget http://mymusic.store.com/musicfoo.mp3 && mplayer musicfoo.mp3 

&& означает «после успешного завершения левой команды». Это предполагает, что команда на левой стороне не вилка или использование нестандартных значений статуса выхода . Я сомневаюсь, что wget делает последнее, и до тех пор, пока вы не используете ключ -b , он тоже не должен делать первый.

Попробуй это :

 mkdir /tmp/download_$$ cd /tmp/download_$$ wget http://mymusic.store.com/musicfoo.mp3 mplayer * 

У меня есть решение:

 fpath=$(basename "$1") wget $1 mplayer $fpath 

Вышеупомянутая проблема заключается в том, что wget присваивает имя файла загруженному файлу (добавляет конец .1 к его концу), если имя файла уже существует. Следовательно, значение fpath не является правильным файлом, так сказать.

  • Как загрузить все html-файлы из каталога URL с помощью wget?
  • Как загрузить несколько URL-адресов в один файл
  • Необходимо выполнить javascript как работу cron ... возможно?
  • make wget ссылается на локальную копию без избыточной загрузки файлов
  • Почему параллель замедляется через некоторое время?
  • wget url из моего открытого наружного wx cam
  • Как отобразить все URL-адреса в цепочке перенаправления?
  • Почему wget --mirror не работает на этом сайте?
  • Использование даты -1day с помощью wget
  • Как безопасно загружать файлы в сценарии оболочки?
  • установка dropbox (для просмотра файлов)
  • Linux и Unix - лучшая ОС в мире.