pathForResource из URL
У меня есть этот код:
NSString *songPathForm = @"http://www.example.com/file.wav";
NSString *song = [[NSBundle mainBundle]pathForResource:songPathForm ofType:nil];
Но песня просто обнуляется, что я делаю не так?
3 ответа
"Путь" здесь означает путь к файлу в локальной файловой системе. То, что вы даете NSBundle, является URL. NSBundle обычно используется для получения файлов, которые находятся в самом приложении (что вы видите, когда выбираете "Показать содержимое пакета" в Finder). NSBunlde также ожидает относительный путь к файлу, а не абсолютный путь (потому что вы не знаете, где находится приложение).
pathForResource
Метод работает только для файлов внутри пакета. Если вы хотите получить доступ к файлу по внешнему URL, вы можете использовать dataWithContentsOfURL:
в NSData
класс например.
Чтобы воспроизвести звук, для которого вы знаете URL, вы должны использовать код, подобный следующему:
NSSound *sound = [[NSSound alloc] initWithContentOfURL: [NSURL URLWithString:songPathForm] byReference:NO];
[sound play];