#ios #filenames #filepath #nsbundle
#iOS #имена файлов #путь к файлу #nsbundle
Вопрос:
У меня есть следующий код для создания файла:
NSString *name = @"dtmf-received.aif";
//create file
NSString *cachesFolder = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
fileName= [cachesFolder stringByAppendingPathComponent:name];
Мне нужно получить путь к созданному файлу. Следующий код не работает. Чего мне не хватает?
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"dtmf-received.aif"
ofType:@""];
Ответ №1:
Каталог caches и каталог app bundle отличаются. Просто используйте один и тот же код в обоих местах, и он будет работать правильно.
Комментарии:
1. что значит использовать тот же код? Не могли бы вы добавить пример?
2. Первая часть кода верна, поэтому используйте ее везде.
3. Я изменил с помощью этой NSString* Путь к файлу = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, ДА) lastObject] Путь к источнику:@»dtmf-received.aif» OfType:@»aif»]; и теперь у меня сбой.
4. Я не понимаю, почему вы находите это таким сложным. Этот код не совпадает с первым фрагментом кода, не так ли? Используйте тот же код.
5. поэтому я могу использовать путь к файлу в качестве имени файла. хорошо, спасибо!
Ответ №2:
Here it is an example how you can play your aif file:
-(void) playSound {
NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"dtmf-received" ofType:@"aif"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath: soundPath], amp;soundID);
AudioServicesPlaySystemSound (soundID);
//[soundPath release];
NSLog(@"soundpath retain count: %d", [soundPath retainCount]);
}
Комментарии:
1. Спасибо! не могли бы вы также рассказать мне, как я могу создать пустой файл размером 10 562 байта, например, в ios? Этот файл будет открыт с помощью stream open и с помощью stream write я добавлю некоторые данные
2. Это точный размер, который вам нужен?
Ответ №3:
Попробуйте это:
NSString *fileLocation = [[NSBundle mainBundle] pathForResource:@"dtmf-received" ofType:@"aif"];
NSURL *vedioURL =[NSURL fileURLWithPath:fileLocation];
MPMoviePlayerViewController *videoPlayerView = [[MPMoviePlayerViewController alloc] initWithContentURL:vedioURL];
[self presentMoviePlayerViewControllerAnimated:videoPlayerView];
[videoPlayerView.moviePlayer play];
Комментарии:
1. Спасибо! не могли бы вы также рассказать мне, как я могу создать пустой файл размером 10 562 байта, например, в ios? Этот файл будет открыт с помощью stream open и с помощью stream write я добавлю некоторые данные.
Ответ №4:
Вам нужно установить .aif в строку ‘Type:’
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"dtmf-received.aif"
ofType:@""];
Попробуйте это->
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"dtmf-received"
ofType:@"aif"];
И проверьте раздел проекта «Копировать ресурсы пакета», ваш файл должен быть здесь
Комментарии:
1. Спасибо за ваш реплей. Мне также нужно создать dtmf-received.aif. Не могли бы вы помочь мне создать файл в основном пакете?
2. перетащите файл в «Копировать ресурсы пакета»
3. как я могу создать файл определенного размера в ios?