WSLのUbuntuでPC内の音楽データをGoogleHomeで操作する(shuffle再生)
はじめに
「WSLのUbuntuでPC内の音楽データをGoogleHomeで操作する」のshuffle再生バージョンです。
【追加】2020-5-1
playlist作成とmplayerの再生で同期が取れず、playlistが未作成で再生しようとするので、
setTimeoutで遅延をいれました。
プログラム(node.js)
●grep検索で抽出した音楽データのプレイリストを作成する。
●mplayerのオプションでshuffle再生する。(mplayer -shuffle -playlist)
●音楽データのリストを予めフリーソフトで作成してください。(list.txt)
/mnt/j/music/松任谷由実/日本の恋と、ユーミン/01 やさしさに包まれたな.mp3
/mnt/j/music/松任谷由実/日本の恋と、ユーミン/01 リフレインが叫んでる.mp3
/mnt/j/music/松任谷由実/日本の恋と、ユーミン/01 真珠のピアス.mp3
ダブルクオーテーションは不要です。
var firebase = require("/home/ユーザ名/node_modules/firebase");
require("/home/ユーザ名/node_modules/firebase");
var iconv = require('/home/ユーザ名/node_modules/iconv-lite');
var value1 ;
//firebase config
var config = {
apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
authDomain: "xxxxxxxxxx.firebaseapp.com",
databaseURL: "https://xxxxxxxxxx.firebaseio.com",
projectId: "xxxxxxxxxx",
storageBucket: "xxxxxxxxxx.appspot.com",
messagingSenderId: "xxxxxxxxxxxxxx"
};
function sleep(time) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, time);
});
}
firebase.initializeApp(config);
//jsonからvalueに一致する値取得
const getJsonData = (value, json) => {
for (var word in json) if (value == word) return json[word]
return json["default"]
}
//database更新時
const path = "/googlehome5"
const key = "word"
const db = firebase.database()
db.ref(path).on("value", function(changedSnapshot) {
//値取得
let value = changedSnapshot.child(key).val()
if (!value) return
console.log(value)
var value1 = value.replace(/ /g,"");
//コマンド
const STOP = "pkill mplayer";
if(value === "停止"){
command = STOP
} else if(value === "止め て"){
command = STOP
} else {
command = "未定義"
}
console.log(command)
//コマンド実行
var exec = require('child_process').exec;
exec(STOP, {maxBuffer: 1000*1024}, function(error, stdout, stderr) {
if (error !== null) {
console.log('Exec error: ' + error);
}
});
sleep(2000);
if(command === "未定義") {
command = 'cat /mnt/j/music/list.txt | grep "' + value1 + '"';
var exec = require('child_process').exec;
exec(command, {maxBuffer: 40000*1024}, function(error, stdout, stderr) {
if (error !== null) {
console.log('指定された曲はありません');
} else {
console.log(stdout);
}
});
command = 'cat /mnt/j/music/list.txt | grep "' + value1 + '">/mnt/j/music/playlist';
console.log(command)
var exec = require('child_process').exec;
exec(command, {maxBuffer: 40000*1024}, function(error, stdout, stderr) {
if (error !== null) {
console.log('Exec error: ' + error);
}
});
function mplay(){
command = 'mplayer -shuffle -playlist /mnt/j/music/playlist';
console.log(command)
var exec = require('child_process').exec;
exec(command, {maxBuffer: 40000*1024}, function(error, stdout, stderr) {
if (error !== null) {
console.log('Exec error: ' + error);
}
});
}
setTimeout(mplay,3000);
}
//firebase clear
db.ref(path).set({[key]: ""});
})
Author And Source
この問題について(WSLのUbuntuでPC内の音楽データをGoogleHomeで操作する(shuffle再生)), 我々は、より多くの情報をここで見つけました https://qiita.com/kobbeko/items/8cef110f5b6ee89e7d66著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .