在Xamarin.iOS应用程序中,AVAudioPlayer
用于录制和播放一些音频文件。
用户非常快速地记录并保存一些音频文件,当他尝试播放其中一个音频文件时,它会在行中抛出一个System.Exception:
NSError error;
_player = new AVAudioPlayer(NSUrl.FromFilename(_audioPlaybackFilePath), "m4a", out error);
System.Exception:无法初始化“AVFoundation.AVAudioPlayer”类型的实例:本机“initWithContentsOfURL:fileTypeHint:error:”方法返回nil。通过将MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure设置为false可以忽略此条件。
存在给定路径中的文件。
正如@SushilHangover指出的那样,使用AVAudioPlayer.FromData并使用如下流来提供它:
theStream.Position = 0;
AVAudioPlayer.FromData(NSData.FromStream(theStream));
AND,这非常重要,流始终定位为0。