#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:
Симулятор учитывает регистр, но фактическое устройство чувствительно к регистру. Это сбило с толку многих людей.