空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

コマンドラインで WAV/AIFF を再生

以前goo辞書 の 80 番ポートを直接叩く辞書コマンドを作成した。最近はその進化形として

  1. 自前の単語帳作成
  2. 統計情報を追加
  3. 音声ファイルを再生

する機能を追加して使っている。今まで,音声ファイルの再生に低レベルな CoreAudio を使っていたんだけど,実は NSSound を使うと,これが数行で実現できることが分かった。盲点(アホ)。

#import 

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [ [NSAutoreleasePool alloc] init];
    NSSound *sound =  [ [ [NSSound alloc] initWithContentsOfFile:[NSString stringWithCString: argv[1] ] byReference:YES] autorelease];
    if (sound)
    {
        [sound play];
        while([sound isPlaying]){}
    }
    [pool release];
    return 0;
}

コンパイルは

% gcc -Wall hoge.m -framework AppKit -o hoge

で,OK。こちらの方が,この前あげた低レベルな奴よりも遥かに安定しています。試してみてね>αテスターの方

# RubyCocoa を使ってもいいかも。