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];
Другие вопросы по тегам