シミュレータで動作する私のiPhoneアプリでサウンドを動作させるために、ウェブサイトを検索し、すべての可能なオプションを試しました。サウンドがiPhone 3GSにないシミュレータで動作しています
具体的に私はここに示唆されているもの試してみました:
:私は次のコードで、「.WAV」だけでなく、私のアプリの中から「.caf」ファイルの両方を実行しようとしているほか Sound working in emulator, not in real iPhoneNSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *clapPath = [documentsDir
stringByAppendingPathComponent: @"applause.wav"];
// Put down default db if it doesn't already exist
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:clapPath]) {
NSString *defaultClapPath = [[NSBundle mainBundle]
pathForResource:@"applause" ofType:@"wav"];
if (defaultClapPath) {
[fileManager copyItemAtPath:defaultClapPath toPath:clapPath error:NULL];
}
}
// NSString *clapPath = [[NSBundle mainBundle] pathForResource:@"applause" ofType:@"caf"];
CFURLRef clapURL = (CFURLRef) [NSURL fileURLWithPath:clapPath];
AudioServicesCreateSystemSoundID (clapURL, &clappingFileID_);
NSLog(@"calling initSounds..");
AudioServicesPlaySystemSound (clappingFileID_);
上記のコード片は、Fを働かせる両方:私はまた、次のコードを変更した他の提案に基づいて
CFURLRef soundFileURLRef = NULL;
soundFileURLRef = CFBundleCopyResourceURL (CFBundleGetMainBundle(),
CFSTR ("applause"),CFSTR ("wav"),NULL);
NSLog(@"Clap Path: %s", CFURLGetString(soundFileURLRef));
AudioServicesCreateSystemSoundID (soundFileURLRef,&clappingFileID_);
AudioServicesPlaySystemSound (clappingFileID_);
またはシミュレータではなく、iPhone用ではありません。
また、getInfoを実行して.wavファイルのプロパティを確認しました。それは言う: ビットレート:176 kbpsの サンプルレート:11.025 kHzの サンプル・サイズ:16ビット サイズ62 KB
またスルー、それを追加することで、アプリの文脈の外で直接iPhone上で.wavファイルを実行してみましたitunesとこれはうまく動作します。これは、与えられた.wavファイルのためにiPhoneにコーデックが存在し、そのファイルが破損していないことを示しています。
私の携帯電話のOSは4.1であり、そのiPhone 3GS。デバイスでは、設定に移動し、Sounds->リンガーと警告
上の音量を上げ次に、あなたのテストを再試行してください:私は次のことを試してみてください4.2
明らかにわからないように、エミュレータはデバイスが動作している間は大文字と小文字を区別しません。正しいファイル名を使用していますか? –
はい、オーディオファイル名はすべて小文字です – user200671