1

我试图在我的 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() 之后初始化,因为它们需要一个活动的上下文。

我尝试Urho.Application.CreateInstance(typeof(Urho.SimpleApplication)).Run();在我的 App.xaml.cs 构造函数中添加该行(我能找到的最接近 Urho.app.Run() 的东西),但是该行给了我这个错误消息

无法初始化 SDL 子系统:应用程序未正确初始化,您是否在包含 main() 函数的文件中包含 SDL_main.h?您可以通过订阅 Urho.Application.UnhandledException 事件并将 Handled 属性设置为 True 来忽略此异常。

我能找到的唯一帮助是SoundSynthesis示例,但似乎所有示例都假设所有样板开销都已得到处理。(我也可能加载了错误的 wav 文件,但在我让 Urho 尝试播放它之后我会担心)

4

0 回答 0