トップページ > 記事閲覧
(iOS,iPhone)phontファイルの変更方法について
日時: 2013/03/26 00:17
名前: TeamOrphan
参照: https://sites.google.com/site/teamorphan7787/

環境
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);

***以下略*****
***********************************
メンテ

Page: 1 |

Re: (iOS,iPhone)phontファイルの変更方法について ( No.1 )
日時: 2013/03/26 10:02
名前: 管理人

Phont云々の前に、一般的なファイル処理やメモリに関して、もっと勉強が必要だと思います

このコードでコンパイル通るのも不思議ですが、
とりあえず、ひとつだけ。

int size = malloc_size(fp); <<ファイルサイズじゃないよ!
メンテ
Re: (iOS,iPhone)phontファイルの変更方法について ( No.2 )
日時: 2013/03/26 13:20
名前: TeamOrphan
参照: https://sites.google.com/site/teamorphan7787/

素早い回答、アドバイス有り難うございます。

C言語のファイル読み書きを調べて勉強し直したらうまく行きました。
10年くらい前にかじっただけだったので、忘れてる事だらけで
今見返すと酷いコードです。


以下に、後から同じ様な悩みを持ってここに来る方の為に
メモを残しておきます。
上みたいなコードを平気で書く人間のメモなので
あくまで参考程度で見てください。

・C言語のファイル読み書きのコードがほぼそのまま使えます。
・malloc() fopen() fread() stat()でそれぞれ調べれば大体分かると思います。
・AquesTalk2Da_Playにはunsigned charの先頭アドレスを渡すと良いようです。
・質問の箇所で書いたコードを参考にする場合
 はfopenから下は無視した方が良いです。

以上です。
くだらない質問でお騒がせしました。
メンテ

Page: 1 |

題名 スレッドをトップへソート
名前
E-Mail
URL
パスワード (記事メンテ時に使用)
コメント
CAPTCHA captcha画像
←英数字を入力

   クッキー保存