Звук не работает в iOS для iPad

Моя игра отлично работает в симуляторе и на реальном устройстве iPod Touch, но когда я запускаю ее на своем устройстве iPad 2, звук не воспроизводится и звуковые эффекты не воспроизводятся.

Вот мой код для запуска фоновой музыки. Имейте в виду, что это работает на симуляторе И на реальном устройстве iPod Touch:

SoundEffect.MasterVolume = 1.0f;

SoundEffect soundMusic = (new ContentManager(screenManager.Game.Services, "Content")).Load<SoundEffect>("Music");
SoundEffectInstance soundMusicInstance = soundMusic.CreateInstance();

soundMusicInstance.IsLooped = true;
soundMusicInstance.Play();

Почему это не работает на iPad?


person user856232    schedule 15.08.2012    source источник
comment
Просто любопытно, работает ли звук на этом iPad в других приложениях? Можете ли вы попробовать AVAudioPlayer в качестве теста, чтобы проверить, работает ли он? (Однако я бы не стал использовать его в вашей финальной игре, просто в качестве теста)   -  person jonathanpeppers    schedule 15.08.2012
comment
На днях мой 2-летний ребенок обнаружил, что на моем iPad отключен звук. Я даже не знал, что такая вещь существует, но это выглядело так, будто мой iPad не может воспроизводить звук. Я думаю, он нашел его, проведя пальцем влево после двойного нажатия кнопки «Домой».   -  person sblom    schedule 15.08.2012
comment
Да, в других приложениях звук работает нормально. Я не знаю, как использовать AVAudioPlayer. Есть ли способ проверить, не меняя на это?   -  person user856232    schedule 15.08.2012
comment
Это очень просто, попробуйте один из примеров здесь: .com/questions/1757768/ SystemSound тоже подойдет.   -  person jonathanpeppers    schedule 15.08.2012
comment
Вы настроили AudioSession, чтобы уведомлять ОС о типе звука, который вы будете воспроизводить?   -  person miguel.de.icaza    schedule 15.08.2012
comment
@miguel.de.icaza: Расскажите, пожалуйста, об AudioSession. Разве это не нужно на симуляторе и/или iPod Touch? На этих устройствах звук работает нормально.   -  person user856232    schedule 15.08.2012
comment
@jonathanpeppers: Мне любопытно, почему некоторые люди предлагают использовать эти другие методы, чтобы проверить, почему звук не работает. Есть ли причина, по которой мне не следует использовать SoundEffect и SoundEffectInstance? Есть ли какая-то разница между симулятором iPod Touch, iPad и iPad, которую решают другие API? Я просто не хочу тратить кучу времени на поиск других API, если те, которые я выбрал, правильные и должны работать.   -  person user856232    schedule 15.08.2012
comment
Мы пытаемся выяснить, не является ли это проблемой MonoGame, напрямую используя Apple API. У вас уже должно быть достаточно времени, чтобы попробовать это. Это должно быть 3 строки кода, которые вы можете просто добавить при запуске вашего приложения.   -  person jonathanpeppers    schedule 16.08.2012
comment
Я не могу заставить ни один из этих сэмплов придумать звуковой объект для воспроизведения. Все они возвращаются нулевыми. Например, я делаю это var mediaFile = NSUrl.FromFilename(Music.xnb); var audioPlayer = AVAudioPlayer.FromUrl(mediaFile); audioPlayer.FinishedPlaying += делегат { audioPlayer.Dispose(); }; аудиоплеер.Воспроизвести (); а audioPlayer всегда имеет значение null. У меня есть файл Music.xnb в папке Content. Как мне заставить это работать, чтобы я мог даже сделать тест?   -  person user856232    schedule 16.08.2012
comment
В вашем примере вы не упоминаете, что это файлы XNB. Вам придется использовать mp3 или wav для классов, отличных от MonoGame. (Это заставляет меня думать, что это может быть проблема с MonoGame, какая у вас версия? 2.5.x (develop) или 3.0 (develop3d)?)   -  person jonathanpeppers    schedule 16.08.2012
comment
Извини, что не упомянул. Я предполагал, что большинство людей используют файлы xnb. Плохое предположение с моей стороны. Я должен воспользоваться этим шансом, чтобы поблагодарить всех, кто работает над Mono, MonoTouch и MonoGame. Эта игра на самом деле игра, которую я сделал для xBox 360, затем я портировал ее на Windows Phone 7 и, используя ТАКОЕ РЕШЕНИЕ, теперь я имею ее на iOS. Мне не пришлось вносить очень много изменений для переноса на iOS. Он уже есть на рынке, и я продал много копий. Не тонна, а немного. Когда я впервые портировал его, я не знал, что вы можете использовать необработанные файлы .wav или png напрямую, потому что я пришел из XNA.   -  person user856232    schedule 16.08.2012
comment
Поэтому я создаю свое приложение для Windows, а затем беру полученные файлы xna и передаю их в решение для iOS. В любом случае, так что больше информации, я просто скопировал файл Music.wav и открыл его, используя тот же код, что и выше, и он воспроизводится в симуляторе. Мне придется подождать, пока я не вернусь домой, чтобы попробовать его на iPad. Я использую MonoGame 2.5.0, потому что это была последняя стабильная версия, о которой я знал, когда выпускал Math Gardener II (эту игру).   -  person user856232    schedule 16.08.2012
comment
Я только что скачал MonoGame 2.5.1. Я попробую это позже сегодня вечером, когда у меня будет iPad. Я собираюсь проверить, работает ли вышеописанный метод AV, прежде чем двигаться дальше. Мне нравится проверять вещи по одному.   -  person user856232    schedule 16.08.2012
comment
Хорошо, слово обратно. Я скопировал файл Music.wav из проекта ПК в проект iOS, и следующий код НЕ работает на реальном iPad. На симуляторе iPad это работает. Я МОГУ воспроизводить другую музыку и звук на iPad, поэтому я знаю, что это не общая проблема с отключением звука, громкостью или аппаратным обеспечением. Вот код: var mediaFile = NSUrl.FromFilename(Content/Music.wav); var audioPlayer = AVAudioPlayer.FromUrl(mediaFile); audioPlayer.FinishedPlaying += делегат { audioPlayer.Dispose(); }; аудиоплеер.Воспроизвести ();   -  person user856232    schedule 17.08.2012
comment
Я только что обновил MonoGame до версии 2.5.1 и вернулся к использованию кода MonoGame, и он отлично работает в симуляторе iPad и в самом iPod, но все еще не радует iPad. Я в тупике.   -  person user856232    schedule 17.08.2012
comment
Мы используем SoundEffects в нашей игре на версии 2.5.1, и у нас нет проблем с iPad. Не могли бы вы сделать быстрый тестовый проект, который воспроизводит один из ваших звуков? (можно просто очистить васильковым для рисования) Кроме того, какая версия iOS работает на этом iPad?   -  person jonathanpeppers    schedule 17.08.2012
comment
Похоже, это следующий шаг. У меня его сейчас нет с собой, но я знаю, что это не последняя версия, потому что доступно обновление. Я проверю и вернусь к вам.   -  person user856232    schedule 18.08.2012