Создание одного экземпляра звукового эффектов в MonoTouch и почему звук так плох для производительности? - PullRequest
0 голосов
/ 22 августа 2011

То, что я хотел бы сделать, это создать повторно используемый класс аудио, который не выделяет / не освобождает ресурсы после инициализации / уничтожения целых чисел.

Таким образом, такой класс как:

class SoundInst
{
   public SoundInst(string sounddir);
   public bool IsPlaying;
   public void Play(float volume);
   public void Stop();
}

Причина, по которой я спрашиваю об этом, заключается в том, что я считаю, что создание аудио на ходу - дело слишком медленное.Моя игра работает со скоростью 60 кадров в секунду без звука, но со звуком она падает ниже 15 кадров в секунду, когда даже один или два звука создаются и воспроизводятся в одном кадре.

Я обнаружил, что сами звуки не являютсязамедляя вещи, а скорее создавая их.Я могу запускать много звуков одновременно и держать их в курсе, и это не влияет на производительность.

Есть какие-нибудь идеи по решению этой моей проблемы?

1 Ответ

1 голос
/ 22 августа 2011

Я не уверен насчет моно-касания, но если вы просто используете аудио в игре, я бы посмотрел на структуру основы AV, а точнее на avaudioplayer. Это то, что я использую для своих игр. Это позволит вам загружать музыку асинхронно, что должно помочь исправить проблемы с падением производительности.

Ссылка на фреймворк: http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVFoundationFramework/_index.html%23//apple_ref/doc/uid/TP40008072

...