サーバーから取得したサウンド ファイルを Base 64 でエンコードされたファイルとして再生したいと考えています。
これまでのところ、base64 を使用してファイルをデコードし、次のようにファイルに書き込みました。
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"voicemail.wav"]];
[fileManager createFileAtPath:filepath contents:[responseDict objectForKey:@"ResponseData"] attributes:nil];
ただし、実際にサウンド ファイルを再生するのに問題があります。私のコードはエラーを返します:
操作を完了できませんでした。OS ステータス エラー 2003334207。
どこが間違っているのか教えてください。
NSURL * url = [NSURL fileURLWithPath:filePath];
AVAudioPlayer *sound = [[[AVAudioPlayer alloc] initWithContentsOfURL:url error:&err] autorelease];
if (! sound) {
NSLog(@"Sound had error %@", [err localizedDescription]);
} else {
[sound prepareToPlay];
[sound play];
}