У меня есть необходимость воспроизводить несколько звуковых эффектов сразу в моем приложении WP7. В настоящее время я работаю с файлами wav, которые занимают около 5 мегабайт, а не 500 кб при кодировании в wma/mp3.Как играть сразу несколько файлов mp3/wma?
Текущая часть кода:
Stream stream = TitleContainer.OpenStream(String.Format("/location/{0}.wav", value)
SoundEffect effect = SoundEffect.FromStream(stream);
effect.Play();
Это прекрасно работает в цикле, готовя все эффекты, а затем играть в них.
Однако, я бы очень хотел использовать mp3/wma/whatever-codec для уменьшения размера моего xap-файла.
Я попытался использовать MediaElement
, но, похоже, вы также не можете использовать его для воспроизведения нескольких файлов. Кроме того, XNA MediaPlayer
не может быть создан, и, насколько мне известно, невозможно воспроизвести несколько файлов одновременно.
Единственное решение, которое я вижу слева, что я каким-то образом декодировать mp3
к wav
и кормить, что Stream
к SoundEffect
.
Любые идеи о том, как выполнить множественное воспроизведение? Или предложения о том, как декодировать mp3
до wav
?
Я не разработчик мобильных устройств, но могу предположить, что WAV может быть лучшим способом. Декодирование MP3-дисков требует некоторой мощности процессора. Я не знаю, насколько пренебрежимо мало на новых устройствах, но у вас могут быть проблемы при одновременном выполнении многих действий. Вы можете рассмотреть более легкий кодек или декодировать свои MP3-файлы для необработанного несжатого звука в ОЗУ при запуске вашего приложения. – Brad