novi's Blog

Mac、iPod、オーディオなどの覚え書き

今年も終わり

あと1時間ほどで、2007年も終わりですね。

今年もいろいろありました。
アンプをたくさん作ったり、touchをいじりまくったり。
まあ、楽しかったです。

それからアプリ作りで、プログラミングの知識が上達したんじゃないかと。
特に、Objective-Cの深いところとかw

最近だけ振り返ってもだめですが、実はまだやり残していることが。
あの結局部品だけ買って完成を見る事の無かったアンプ...
USB端子やらアナログスイッチを買ったやつです。
これはまた来年やりましょうか。

過去の記事を見てもそのくらいですかね。

よいお年を。

[UIKit Tips] UINavigationBarの高さ

覚え書き

デフォルトでは 44 くらい。48だと大きすぎる。

+ (CGSize) defaultSize で取得できる。

libid3tagを使って歌詞を取得

id3tagライブラリを使って、mp3なんかから歌詞を取得する方法。
丁寧に解説されているのでこれを読めばおk。

[mad-dev] libid3tag demystified

おおまかな手順としては、

1. ファイルを開く。
2. ファイルからid3タグを取り出す。
3. タグからフレーム(TPE2:アーティスト、USLT:歌詞など)を取り出す
4. フレームからフィールド(文字列や整数、バイナリ)など)を取り出す。

のような感じ。

iTunes で埋め込まれる歌詞はUSLTフレームにあります。
フィールドのタイプはframetype.cで宣言されています。

続きにサンプル。
解説を読む前に作ったので組み方が適当ですが。

続きを読む »

謎のフォント Apple Symbols

Leopard? に入っているAppleSymbolsフォントにこんなグリフが含まれていました。

ん?どこかで見たとことあるぞ。




これを使えばアイコンなんかが簡単にできますね。
他にも、Mac関連のマークなんかも含まれているようです。

これを表示するにはことえりメニューから文字パレットを開いて、表示をグリフにします。

UIKit に NSTask は無い...

昨日からいろいろと悔しいので、mpeg4の歌詞を読みとる方法を考えていました。

結論から言うと出来ました。

AtomicParsleyをいじって歌詞のみを出すものに変更して、それをLyricsからNSTaskで実行と...
それまでは行ったんですが、コンパイルしてみるとBus error...
どうもNSTaskのallocが出来ていないようです。

これはもしやと思いヘッダを見てみるとNSTaskクラスが無い...
えー...
あれかなり便利なんですが何で無いんでしょう...

まあ、iPhoneにはUNIXコマンドが標準では入っていないので無理もありませんが。

これはどうしようも無いのでCのpopenを使いました。

popenとpclose

この辺を参考にこんなコード。

const char* argvv = "/getLyrics /test.m4a";

int MAXBUFSIZE = 10000*2;
FILE* pipe;

//出力バッファを準備
char* buffer = malloc(sizeof(char)*MAXBUFSIZE +1);
int readNum = MAXBUFSIZE;

memset(buffer, 0, sizeof(buffer));

//パイプを開く
pipe = popen(argvv, "r");
if (pipe == NULL) {
return -1;
}

//stdoutから読み込み
readNum = fread(buffer, sizeof(char), MAXBUFSIZE, pipe);
while (readNum > 0) {
readNum = fread(buffer, sizeof(char), MAXBUFSIZE, pipe);
}

//いらんものを解放
pclose(pipe);


printf("%sn", buffer);

free(buffer);


iTunesで埋め込まれたものは改行コードが ¥r なので ¥n に変換するのを忘れずに。
そのままだと改行されません。

あとはコントローラを追加すればとりあえずLyricsは完成かな。

それから、メモリ管理。
それから、いちいち終了しないようにせねば。


 | HOME |  »

プロフィール


novi


Author:novi
学生。♂。
飽きやすいのでネタがころころ変わります。最近は iPhone の hack と工作。










月別アーカイブ


検索フォーム


今日の献立


DTIミニモブログ


DTIブログ
ブログでアフィリエイト


DTIブログポータルへ

このブログを通報

カレンダー

11 | 2007/12 | 01
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

Twitter


follow novi_ at http://twitter.com


カテゴリー


最近のエントリー


最近のコメント


最近のトラックバック


なかのひと


ジオターゲティング


ジオターゲティング


リンク


RSSリンク


PoweredBy

Powered By DTIブログ