2017-05-12 5 views
0

オーディオの再生中にリリースモードでクラッシュする可能性があります。 AVFoundation.AVAudioPlayerNode 『「タイプのネイティブインスタンス作成できませんでした』:キャッチされない例外により 『のSystem.Exception』、理由にアプリを終了リリースモードのAVAudioPlayerNodeでXamarinアップルウォッチがクラッシュする

"*。ネイティブクラスがロードされていないが ことが可能です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

これはXamarin for Watch OSの問題で、Xamarin bugzillaにバグを記録して解決策を得ました。 Xamarin開発者のための

返信: このバグの回避策としては、プロジェクトのWatchOSビルドしたオプションに追加のmTouch引数に以下を追加してみてください:

私が追加「-framework AVFoundationを」-gcc_flagsこれをWatchExtensionのWatchOSビルドオプションに追加しました。これは魅力的なものでした。

最新のXamarinからのアップデートでは、最新のシミュレータにAVFoundationが含まれています。

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

関連する問題