在Xamarin.iOS应用程序AVAudioPlayer
用于录制和播放一些音频文件。
用户非常快速地记录和保存一些音频文件,当他尝试播放其中一个时,它会在行中抛出System.Exception:
NSError error;
_player = new AVAudioPlayer(NSUrl.FromFilename(_audioPlaybackFilePath), "m4a", out error);
System.Exception:无法初始化该类型的实例 ' AVFoundation.AVAudioPlayer':原生 ' initWithContentsOfURL:fileTypeHint:错误:'方法返回零。它是 可以通过设置忽略这个条件 MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure为false。
存在给定路径中的文件。
答案 0 :(得分:0)
正如@SushilHangover指出的那样,使用AVAudioPlayer.FromData并向其提供如下流:
theStream.Position = 0;
AVAudioPlayer.FromData(NSData.FromStream(theStream));
并且,这非常重要,流始终定位为0。
答案 1 :(得分:0)
我们使用AVAudioPlayer
的软件包Plugin.AudioRecorder遇到了此错误。我们可以通过将以下代码添加到FinishedLaunching
中来解决该问题:
AudioPlayer.OnPrepareAudioSession = audioSession =>
{
// maybe force audio to route to the speaker?
var success = audioSession.OverrideOutputAudioPort (AVAudioSessionPortOverride.Speaker, out NSError error);
};