下記のメソッドを作成し、タイマー処理内で定期的に、判定に応じた数秒のmp3ファイルを再生しています。
正常にmp.Completion処理に入った場合は、次回の音声再生も実行されるのですが、
一度mp.Error処理に入ってしまった場合、アプリを再起動しない限り毎回Errorとなり音声ファイルが再生されず、苦慮しています。
C#
1private Task<bool> PlayAsync(int resid) 2{ 3 var compSource = new TaskCompletionSource<bool>(); 4 _IsPlaying = true; 5 6 try 7 { 8 using (var mp = MediaPlayer.Create(this, resid)) 9 { 10 mp.Completion += (_, __) => 11 { 12 _IsPlaying = false; 13 compSource.TrySetResult(true); 14 }; 15 16 mp.Error += (_, __) => 17 { 18 _IsPlaying = false; 19 compSource.TrySetResult(false); 20 }; 21 22 mp.Start(); 23 } 24 } 25 catch (Exception ex) 26 { 27 Toast.MakeText(this, ex.Message, ToastLength.Long).Show(); 28 } 29 return compSource.Task; 30}
xamarin開発にお詳しい方がいらっしゃれば、ご教示いただけませんでしょか。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。