播放音频时,在播放模式下崩溃。
“ *因未捕获的异常而终止应用程序'System.Exception',原因:'无法创建”AVFoundation.AVAudioPlayerNode“类型的本机实例:尚未加载本机类。 通过将ObjCRuntime.Class.ThrowOnInitFailure设置为false,可以忽略此条件。 * 首先抛出调用堆栈:“。
虽然使用Native 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();
}
答案 0 :(得分:0)
这是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