Как воспроизвести mp3-файл из папки «Ресурсы» моего приложения? - PullRequest
1 голос
/ 09 июля 2009

Я создаю приложение, которое будет воспроизводить звук на событиях, но я не могу понять, как получить доступ к файлам из папки ресурсов приложения.

Вот что я делаю:

NSSound *player = [[NSSound alloc] initWithContentsOfFile:@"Sound.mp3"] byReference:NO];
[player play];

Но это совсем не работает. Если я укажу полный путь, он будет работать, но мне нужен другой способ, потому что кто-то может поместить мое приложение в другое место, кроме папки приложения.

Ответы [ 2 ]

9 голосов
/ 09 июля 2009

Вам необходимо использовать класс NSBundle с методом pathForResource:ofType: для ссылки на файл:

NSSound *player = [[NSSound alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Sound" ofType:@"mp3"] byReference:NO];
[player play];

Возвращает полный путь к ресурсу, переданному методу.

1 голос
/ 09 июля 2009

Просто чтобы уточнить , почему ваше первоначальное решение не сработало:

Относительные пути относительно текущего рабочего каталога. Для приложения с графическим интерфейсом, запущенного из Finder, начальный рабочий каталог - это / - корень файловой системы. Если бы это была папка «Ресурсы» вашего пакета, ваше решение сработало бы.

Как отметил в своем ответе Perspx, правильное решение - попросить ваш пакет преобразовать относительный путь в полный путь.

...