OSXのコマンドに afplay というものがありまして、これを使うとターミナルから音楽が再生できます。おそらく Audio File Play ということなんだと思います。違うかもしれません。
もうちょっと調べようと思ったのですが、OSXのコマンド一覧や、afplayのドキュメントみたいなものが見つからず、ただただ困ってました。
そんなとき、いちかばちかヘルプコマンドっぽいものをいろいろ試してみると、
afplay -h
で、ヘルプがでてきました。
Audio File Play Version: 2.0 Copyright 2003-2013, Apple Inc. All Rights Reserved. Specify -h (-help) for command options Usage: afplay [option...] audio_file Options: (may appear before or after arguments) {-v | --volume} VOLUME set the volume for playback of the file {-h | --help} print help { --leaks} run leaks analysis {-t | --time} TIME play for TIME seconds {-r | --rate} RATE play at playback rate {-q | --rQuality} QUALITY set the quality used for rate-scaled playback (default is 0 - low quality, 1 - high quality) {-d | --debug} debug print output
基本的な使い方としては、
afplay ファイル名
で、音声ファイルを再生でき、いろいろオプションを渡せるようです。
停止はどうすれば良いんだ?と思いましたが、音楽再生中に、
killall afplay
と、killコマンドを打てば普通に止まりました。
僕の場合は、Node.jsから実行する場合が多いのですが、
そんなときは、child_processをつかって、
const exec = require('child_process').exec; exec(`afplay ${__dirname}/audio.mp3`, (err, stdout, stderr) => {}); // 再生 setTimeout(() => { exec(`killall afplay`, (err, stdout, stderr) => {}); // 停止 }, 5000);
といった具合に叩けます。
当然Windowsでは動かないですが、Macだけで動かす場合はこれで充分な気もします!