【问题标题】:Xamarin Apple watch is getting crashed in AVAudioPlayerNode in Release modeXamarin Apple Watch 在发布模式下的 AVAudioPlayerNode 中崩溃
【发布时间】:2017-05-12 21:39:37
【问题描述】:

播放音频时在释放模式下崩溃。

" * 由于未捕获的异常“System.Exception”而终止应用程序,原因:“无法创建“AVFoundation.AVAudioPlayerNode”类型的本机实例:尚未加载本机类。 可以通过将 ObjCRuntime.Class.ThrowOnInitFailure 设置为 false 来忽略此条件。 * 首先抛出调用栈:".

虽然原生 AppleWatch OS 应用也能正常工作。

Public void PlaySound
{

        var audioPlayer = new AVAudioPlayerNode();
        var audioEngine = new AVAudioEngine();
        audioEngine.AttachNode(audioPlayer);

        AVAudioFormat stereoFormat = new AVAudioFormat(44100, 2);
        audioEngine.Connect(audioPlayer, audioEngine.MainMixerNode, stereoFormat);

        NSError error;
        if (!audioEngine.Running)
        {
            audioEngine.StartAndReturnError(out error);
        }

        var filePath = NSBundle.MainBundle.PathForResource("TestAudio","wav");
        var url      = NSUrl.FromString(sFilePath);

        AVAudioFile audioFile = new AVAudioFile(url, out error);

        audioPlayer.ScheduleFile(audioFile, null, null);
        audioPlayer.Play();
}

【问题讨论】:

    标签: ios xamarin xamarin.ios watchkit apple-watch


    【解决方案1】:

    这是 Xamarin for Watch OS 的问题,我已将错误记录到 Xamarin bugzilla 并获得了解决方案。

    回复 Xamarin 开发人员: 作为此错误的解决方法,请尝试将以下内容添加到项目的 WatchOS 构建选项中的其他 mtouch 参数中:

    -gcc_flags "-framework AVFoundation"

    我将它添加到我的 WatchExtension 的 WatchOS 构建选项中,效果非常好。

    Xamarin 的最新更新是他们在最新的模拟器中包含了 AVFoundation。

    固定:https://github.com/xamarin/xamarin-macios/commit/0dd385d81fac0474dbb725b730b4fbb018839a97

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      相关资源
      最近更新 更多