Cocos2d - SimpleAudioEngine - звук не воспроизводится на iPhone - PullRequest
3 голосов
/ 04 июля 2011

Недавно у меня возникла проблема с воспроизведением моих звуковых эффектов с помощью CocosDenshion. Звук воспроизводится на iPhone Simulator, но не на моем собственном устройстве. Я не уверен, что я делаю неправильно. Конечно, я проверил, работают ли мои колонки, но они работают во время использования других приложений или библиотеки iPod.

Я просто использую этот простой код:

[[SimpleAudioEngine sharedEngine] playEffect:@"button.wav"];

Я дважды проверил имя файла, и это действительно button.wav.

Я надеюсь, что кто-нибудь может мне помочь.

Ответы [ 5 ]

9 голосов
/ 07 апреля 2012

У меня недавно была такая же проблема, и я понял это.

Я использую Xcode 4.3.2 и, похоже, есть ошибка. Не все ресурсы, которые вы добавляете (перетаскиваете) в проект, по умолчанию добавляются к цели. Когда вы добавляете ресурс, убедитесь, что (помимо проверки элементов копирования в поле назначения) вы также установите флажок добавления в цель.

Вы можете проверить, были ли ресурсы добавлены в пакет, нажав на значок цели. На вкладке Фазы сборки проверьте, включены ли звуковые файлы в ресурсы пакета копирования. Если нет, добавьте их вручную (+ добавьте цель)

4 голосов
/ 22 декабря 2011

Вы можете попробовать предварительно загрузить звуковые эффекты на более раннем этапе программы, так как в противном случае он должен загрузить звуковой эффект, прежде чем сможет его воспроизвести.Вы можете создать сцену splashScreen, которая является первой сценой и загружает все ваши активы, а затем переходит к первой «реальной» сцене.

    SimpleAudioEngine *engine = [SimpleAudioEngine sharedEngine];
    [engine preloadEffect:@"Example-Sound.caf"];
1 голос
/ 16 мая 2013

Не уверен, что это так, но вы должны иметь в виду, что если имя вашего файла "Button.wav" и вы запрашиваете playEffect:@"button.wav", оно будет воспроизводиться на симуляторе, ноне будет на устройстве.Этот эффект имеет место, потому что файловая система на вашем рабочем столе нечувствительна к регистру, а на устройствах iOS - нет.

0 голосов
/ 28 ноября 2012

Обязательно проверьте сам аудио-файл. Моно 16-битная несжатая волна с частотой дискретизации 441000 должна «просто работать». Я рекомендую взять образец .wav из онлайн-примера Cocos2D, такого как Cowbell.wav, и попробовать воспроизвести этот файл.

0 голосов
/ 24 мая 2012

У меня такая же проблема и найти здесь.Но я исправляю это сам.Если переустановить ios для ipad.Переключатель по умолчанию (для громкости) по умолчанию, как метод "отключения звука".Может быть, я поменяю его на метод «вращения», когда он отключен.Это приводит к тому, что cocos2d больше не может воспроизводить звук.Поэтому я возвращаю метод обратно и отключаю звук.И тогда SimpleAudioEngine работает хорошо.Это ошибка системы ios.

...