我正在尝试在Xamarin应用程序中使用UrhoSharp播放声音,但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.Application尚未启动。所有的urho物品都应 在app.Run()之后初始化,因为它们需要活动的上下文。
我尝试在App.xaml.cs构造函数中添加第Urho.Application.CreateInstance(typeof(Urho.SimpleApplication)).Run();
行(我能找到的最接近Urho.app.Run()的行),但是该行给了我此错误消息
无法初始化SDL子系统:应用程序未初始化 正确地,您是否在包含您的文件的文件中包括SDL_main.h 主功能?。您可以通过订阅以下内容来忽略此例外 Urho.Application.UnhandledException事件,并将Handled属性设置为 是的。
我能找到的唯一帮助是SoundSynthesis示例,但似乎所有示例都假定所有样板程序开销都已得到处理。 (我也可能是错误地载入了wav文件,但在让Urho尝试播放该文件后,我可能会为此担心)