Проблема с воспроизведением звука на устройстве iPad с помощью MonoTouch

#ios #resources #audio #xamarin.ios

#iOS #Ресурсы #Аудио #xamarin.ios

Вопрос:

Я использую следующий код для воспроизведения файла .CAF в приложении iPad через Monotouch:

         public void PlayClick()
        {
            PlaySound("Media/Click.caf");
        }

        private void PlaySound(string soundFile)
        {
            //var mediaFile = NSUrl.FromFilename(soundFile);
            //var audioPlayer = new SystemSound(mediaFile);
            //audioPlayer.PlaySystemSound();
            var audioPlayer = new SystemSound(soundFile);
            if (audioPlayer != null)
            {
               audioPlayer.PlaySystemSound();
            }
        }
  

Это работает, как найти в симуляторе — фактически, все варианты, которые я пробовал (SystemSound, AVAudioPlayer и т.д.), Похоже, работают нормально в симуляторе, но я еще не получил версию для воспроизведения на реальном устройстве. Все звуковые файлы помечены как содержимое, и я проверил пакет, загруженный на iPad, и файлы определенно есть во вложенной папке с именем «Media». Если я изменю код для использования SystemSound (через конструктор с URL), я получу исключение InvalidOperationException с подробной информацией:

Не удалось создать идентификатор системного звука для URL file://localhost/private/var/mobile/Applications/AC24496E-12E9-4690-B154-BA1AD1123EDC/Sample.app/Media/Click.caf ; ошибка = не указан системный звук

Кто-нибудь знает, что я делаю не так? Спасибо за любые указания, которые помогут мне решить эту проблему!

Комментарии:

1. Ого! Файловая система устройства чувствительна к регистру.. на самом деле имя файла было названо «click.caf» .. а не «Click.caf». Очевидно, симулятор не такой требовательный! Проблема решена.. здесь нечего смотреть .. 🙂

Ответ №1:

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