ループでサウンド ファイルを再生していますが、ループが最初から開始されるたびにアニメーションを再開する必要があります。
ドキュメントでデリゲート メソッドが見つかりませんでした。プレーヤーが最初にループしたときに通知を受け取る方法はありますか?
私のアプローチは、現在の再生時間を数ミリ秒ごとにチェックするタイマーを使用することでしたが、これは恐ろしい解決策のように思えます。
ループでサウンド ファイルを再生していますが、ループが最初から開始されるたびにアニメーションを再開する必要があります。
ドキュメントでデリゲート メソッドが見つかりませんでした。プレーヤーが最初にループしたときに通知を受け取る方法はありますか?
私のアプローチは、現在の再生時間を数ミリ秒ごとにチェックするタイマーを使用することでしたが、これは恐ろしい解決策のように思えます。
いいえ、あなたのソリューションが機能する唯一のソリューションです。ループ中は finishedPlaying メソッドが呼び出されないため、位置をサンプリングすることが唯一の方法です。
継承されたコードを更新してループを追加し、iOS8 でこの結論に達しました。
avaudioplayerインスタンスのデリゲートを設定できます。その後、サウンドの再生が正常に終了するたびに、代理人に通知されます。次に、プレーヤーを再起動して再度再生し、アニメーションを再開できます。頭のてっぺんから。詳細については、こちらをご覧ください。