この特定の機能の目的は、テーブル ビューからローカルの音声録音を表示および再生できるようにすることです。ローカル caf ファイルをロードするコードは次のとおりです。
- (void)viewDidLoad
{
[super viewDidLoad];
[self loadFileInformation];
}
- (void)loadFileInformation
{
items = [[NSMutableArray alloc] init];
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
for (int i = 0; i < [directoryContent count]; i++) [items addObject:[directoryContent objectAtIndex:i]];
[self.tableView reloadData];
}
次のように、特定のファイルを再生するデリゲート メソッドを使用します。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[items objectAtIndex:indexPath.row] filePathURL] error:nil];
avAudioPlayer.delegate = (id)self;
[avAudioPlayer prepareToPlay];
[avAudioPlayer play];
}
ただし、このメソッドが呼び出されると、エラーが発生します。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString filePathURL]: unrecognized selector sent to instance 0x239420'
誰かが私を正しい方向に向けることができるかどうか疑問に思っています! ローカル ディレクトリの内容が配列に格納されているdirectoryContent
場合、各要素は何のオブジェクトですか? NSData
?
よろしくお願いします