Я пытаюсь использовать UrhoSharp в приложении Xamarin для воспроизведения звука, но для SoundSource, похоже, требуется инициализация Urho, и я не могу инициализировать Urho без ошибок.
Вот код, который я пытаюсь запустить
public void PlayTestUrho()
{
using (System.IO.Stream wav_stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(wav_file_name))
using (System.IO.MemoryStream mem_stream = new System.IO.MemoryStream())
{
wav_stream.CopyTo(mem_stream);
Node node = new Node();
SoundSource src = node.CreateComponent<SoundSource>();
BufferedSoundStream soundStream = new BufferedSoundStream();
soundStream.AddData(mem_stream.ToArray());
soundStream.SetFormat(44100, true, true);
src.AutoRemoveMode = AutoRemoveMode.Node;
src.Enabled = true;
src.Panning = panning;
src.Gain = gain;
src.Frequency = frequency;
src.Play(soundStream);
}
}
Однако, когда я запускаю это, я получаю следующее сообщение об ошибке
Urho. Приложение еще не запущено. Все объекты должны быть
инициализируется после app.Run (), так как им нужен активный контекст.
Я попытался добавить строку Urho.Application.CreateInstance(typeof(Urho.SimpleApplication)).Run();
(самую близкую к Urho.app.Run (), которую я смог найти) в моем конструкторе App.xaml.cs, но эта строка дает мне это сообщение об ошибке
Не удалось инициализировать подсистему SDL: приложение не инициализировано
правильно, вы включили SDL_main.h в файл, содержащий
основная функция?. Вы можете пропустить это исключение, подписавшись на
Urho.Application.UnhandledException событие и установите свойство Handled равным
Правда.
Единственная помощь, которую я могу найти, - это образец SoundSynthesis , но, похоже, все образцы предполагают, что все накладные расходы были учтены. (Я также, вероятно, загружаю wav-файл неправильно, но я могу беспокоиться об этом после того, как получу Urho даже попытаться воспроизвести его)