Воспроизведение звука с Monotouch - PullRequest
3 голосов
/ 18 ноября 2009

Независимо от того, что я пытаюсь (build -> content, NSUrl, имя файла), я получаю «нулевое исключение»: файл не найден, когда я пытаюсь воспроизвести звуковой файл .caf в режиме monotouch.

//var path = NSBundle.MainBundle.PathForResource("MatchGame", "caf"); 
//var gameSong = SystemSound.FromFile( new NSUrl(path, false));
var gameSong = SystemSound.FromFile("MatchGame.caf");
gameSong.PlaySystemSound();

Я также пробую комбинации, используя имя папки «images / MatchGame.caf» и перемещая MatchGame.caf в корневую папку.

Чего мне не хватает? Большое спасибо.

Вот ссылка на видео о добавлении звука в monotouch. http://www.screencast.com/t/MmE0ZmFh Что не так?

Ответы [ 2 ]

8 голосов
/ 26 ноября 2009

Bryan

Посмотрев скринкаст, вы пытаетесь воспроизвести файл mp3, а не файл caf. Файлы Mp3 кодируются по-разному и не будут воспроизводиться с классом SystemSound, который там есть (я не помню, можете ли вы сделать это в Obj-C или нет.)

Вы захотите использовать пространство имен AVFoundation и класс AVAudioPlayer.

using Monotouch.AVFoundation;

var mediaFile = NSUrl.FromFilename("myMp3.mp3");
var audioPlayer = AVAudioPlayer.FromUrl(mediaFile);
audioPlayer.FinishedPlaying += delegate { audioPlayer.Dispose(); };
audioPlayer.Play();

Возможно, вам придется настроить код выше - у меня нет MonoDevelop под рукой, но это должно помочь вам немного дальше.

Приветствия

ChrisNTR

6 голосов
/ 21 ноября 2009

Вам нужна первая строка:

var path = NSBundle.MainBundle.PathForResource ("MatchGame", "caf");

Затем убедитесь, что ваш аудиофайл включен в приложение, убедившись, что ваш файл CAF помечен как «Контент» на панели свойств, в противном случае файл не будет скопирован в результирующий пакет приложения (ваш .app)

Вы можете выполнить действия, описанные здесь (они относятся к изображениям, но применимы к аудио-файлам):

http://wiki.monotouch.net/HowTo/Images/Add_an_Image_to_your_Project

Кроме того, это хороший ресурс для хранения файлов:

http://wiki.monotouch.net/HowTo/Files/HowTo%3a_Store_Files

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...