(iOS,iPhone)phontファイルの変更方法について
| 投稿日 | : 2013/03/26 00:17 |
| 投稿者 | : TeamOrphan |
| 参照先 | : https://sites.google.com/site/teamorphan7787/ |
| 件名 | : Re: (iOS,iPhone)phontファイルの変更方法について |
| 投稿日 | : 2013/03/26 13:20 |
| 投稿者 | : TeamOrphan |
| 参照先 | : https://sites.google.com/site/teamorphan7787/ |
素早い回答、アドバイス有り難うございます。
C言語のファイル読み書きを調べて勉強し直したらうまく行きました。
10年くらい前にかじっただけだったので、忘れてる事だらけで
今見返すと酷いコードです。(+_+)
以下に、後から同じ様な悩みを持ってここに来る方の為に
メモを残しておきます。
上みたいなコードを平気で書く人間のメモなので
あくまで参考程度で見てください。
・C言語のファイル読み書きのコードがほぼそのまま使えます。
・malloc() fopen() fread() stat()でそれぞれ調べれば大体分かると思います。
・AquesTalk2Da_Playにはunsigned charの先頭アドレスを渡すと良いようです。
・質問の箇所で書いたコードを参考にする場合
はfopenから下は無視した方が良いです。
以上です。
くだらない質問でお騒がせしました。
C言語のファイル読み書きを調べて勉強し直したらうまく行きました。
10年くらい前にかじっただけだったので、忘れてる事だらけで
今見返すと酷いコードです。(+_+)
以下に、後から同じ様な悩みを持ってここに来る方の為に
メモを残しておきます。
上みたいなコードを平気で書く人間のメモなので
あくまで参考程度で見てください。
・C言語のファイル読み書きのコードがほぼそのまま使えます。
・malloc() fopen() fread() stat()でそれぞれ調べれば大体分かると思います。
・AquesTalk2Da_Playにはunsigned charの先頭アドレスを渡すと良いようです。
・質問の箇所で書いたコードを参考にする場合
はfopenから下は無視した方が良いです。
以上です。
くだらない質問でお騒がせしました。
| 件名 | : Re: (iOS,iPhone)phontファイルの変更方法について |
| 投稿日 | : 2013/03/26 10:02 |
| 投稿者 | : 管理人 |
| 参照先 | : |
Phont云々の前に、一般的なファイル処理やメモリに関して、もっと勉強が必要だと思います(^_-)
このコードでコンパイル通るのも不思議ですが、
とりあえず、ひとつだけ。
int size = malloc_size(fp); <<ファイルサイズじゃないよ!
このコードでコンパイル通るのも不思議ですが、
とりあえず、ひとつだけ。
int size = malloc_size(fp); <<ファイルサイズじゃないよ!
iOS(6.1.3)
AquesTalk2 iOS ver.2.4
xCode 4.6.1
初めまして。
デフォルトのphontでの音声再生がうまく出来たので
次にAquesTalk2Da_Playでの音声再生時の
phontファイルの変更を行おうとしています。
fopenとfreadでデータを読み込んで渡せば良いと思っていたのですが、
「EXC_BAD_ACCESS(code=1,address=0xffffff96)」というエラーが出て
しまいうまく行きません。
簡単な手違いなのか、そもそも方法からして間違っているのかも
全く検討がつきません。
アドバイスをお願い致します。
以下が自力で調べて試してみたコードです。
***********************************
//phontファイルをdataに読み込む
FILE *fp;
NSString *homeDir = NSHomeDirectory();
NSString *docDir = [homeDir stringByAppendingPathComponent:@"MyAppName.app/aq_rb2.phont"];
const char *dir = [docDir UTF8String];
fp = fopen( dir, "rb" );
int size = malloc_size(fp);
char data[size];
fread( data, 1, size , fp );
***中略*****
//freadで読み込んだdataを渡す
int iret = AquesTalk2Da_Play(m_pAqTk, sjis, speekSpeed, (void *)data, notification);
***以下略*****
***********************************