играть в mp3 с Monotouch - PullRequest
       20

играть в mp3 с Monotouch

6 голосов
/ 13 октября 2011

Я создаю приложение, используя monotouch. В основном мне нужно проигрывать mp3, как только приложение загрузится. На main.cs я добавил этот фрагмент перед нажатием на главный контроллер:

AVAudioPlayer player = new AVAudioPlayer();
NSUrl mediaFile = NSUrl.FromFilename("Content/Audio/music1.mp3");

player = AVAudioPlayer.FromUrl(mediaFile);
player.Delegate = new PlayerDelegate();

if(player.PrepareToPlay()){
  player.Play();
}

Но когда я запускаю приложение, я слышу звук примерно полсекунды, а затем ничего. Этот код правильный или что-то не так?

Спасибо

Ответы [ 3 ]

7 голосов
/ 13 октября 2011

Трудно дать ответ без контекста, например, кода :-)

Я подозреваю, что ваш AVAudioPlayer, если он используется как локальная переменная, может быть собран сборщиком мусора (GC), когда метод (это FinishedLaunching?) Вернется.

Если это так, то перевод вашей локальной player переменной в поле обеспечит сохранение ссылки на экземпляр AVAudioPlayer и позволит ей воспроизводиться без прерывания (или сбоя). .

Если я ошибаюсь, отредактируйте свой вопрос и предоставьте нам больше контекста, и мы сможем помочь вам в дальнейшем.

0 голосов
/ 06 сентября 2012

Теперь это действительно просто:

            //enable audio
            AudioSession.Initialize();

            //load the sound
            sound = SystemSound.FromFile("Sounds/rev.wav");
            sound.PlaySystemSound();
0 голосов
/ 13 октября 2011

Попробуйте зарегистрироваться для AVAudioPlayerDelegate и снова запустить воспроизведение музыки в методе audioPlayerEndInterruption.

...