必要なものを揃える
- Mac OS 10.7
- Terminal 2.2.3
- Node.js 0.8 (旧安定版)
- Yukkuroid v0.4.1
NodeとYukkuroidはGUIのインストーラーで入れられます。
Node.jsの最新版(v0.9以降)を入れてしまうとNodOnjCをインストール出来ないので、旧安定版を入れます。間違えて最新版を入れてしまった場合は1
次にNodObjCをインストール
mkdir yukkuri
cd yukkuri
npm install NodObjC
コレで環境は整いました。Yukkuroidを起動した状態で次へ進みます
jsアプリを作る
デスクトップにでもjsファイルを2つ作ります
yukkuri.js
var $ = require('NodObjC');
$.import('Foundation');
$.import('Cocoa');
var processName,
host,
proxy,
pool;
/**
* 初期化処理.
* ここで自動解放プールの作成と必要なNSStringの作成.
*/
exports.init = function() {
pool = $.NSAutoreleasePool('alloc')('init');
processName = $.NSString('stringWithUTF8String', 'com.yukkuroid.rpc');
host = $.NSString('stringWithUTF8String', '');
proxy = $.NSConnection('rootProxyForConnectionWithRegisteredName',processName,'host',host);
};
/**
* 終了処理.リソースを解放する.
*/
exports.release = function() {
pool('drain');
};
/**
* NSConnectionを取得する.
*/
exports.getProxy = function() {
return proxy;
};
/**
* 通常テキスト欄に値をセット.
*/
exports.setKanjiText = function(jsStr) {
var objCStr = $.NSString('stringWithUTF8String', jsStr);
proxy('setKanjiText',objCStr);
};
exports.getKanjiText = function() {
return proxy('getKanjiText');
};
/**
* 音声を再生する.
*/
exports.play = function() {
proxy('pushPlayButton',0);
};
app.js
//app.js
var yukkuri = require('./yukkuri');
var word;
if (process.argv.length <= 2) {
console.log("引数にしゃべらせたい文字を指定してください");
process.exit(0);
}
//初期化
yukkuri.init();
//引数から文字を取得してセット
yukkuri.setKanjiText(process.argv[2]);
var text = yukkuri.getKanjiText();
console.log("しゃべる文字:",text);
//再生
yukkuri.play();
//後処理
yukkuri.release();
実行
jsファイルがあるディレクトリ(私の環境では~/Desktop)で、以下のコマンドで実行出来ます。
cd ~/Desktop
node app.js ゆっくりしていってね
間違えて最新版を入れてしまった場合
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do sudo rm /usr/local/${f}; done
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
-
Nodeのアンインストール ↩