2016-06-18 14 views
0

AVPlayerは、再生ボタン(player.play())をクリックして音楽が再生されていないことを確認したいのですが、遅いインターネット接続やその他の理由で現在バッファリングまたは読み込み中です。また、バッファリング後に音楽を再生するときにチェックします。 再生ボタンにUIActivityIndicatorViewを追加する必要があるためです。再生ボタンをクリックすると、バッファリングまでアニメーション化され、バッファリング後にAVPlayerがソングを再生するとアニメーションが停止し、再びAVPlayerが再びバッファリングを開始すると、再びアニメーション化されます。 は、誰もが、私はこのAVPlayerのバッファリングと再生状態を確認する

​​

のような簡単な方法でこれを行うともNSTimer.scheduledTimerWithTimeInterval(0.05, target: self, selector: "check", userInfo: nil, repeats: true)

や他のシンプルなソリューションを使用して、何度も何度も確認することができる方法を教えていただけますか?おかげさまで

答えて

0

これは私がここで答えた質問に似ているようだ:https://stackoverflow.com/a/42148482/5100819

我々はAVPlayerはバッファリングを終了し、仕事をする可能性が高いでしょう実際の音の再生を開始したときにUIを更新するために使用されるアプローチ。

let times = [NSValue(time:CMTimeMake(1,3))] 
_ = self.player.addBoundaryTimeObserver(forTimes: times, queue: DispatchQueue.main, using: { 
    [weak self] time in 
    // Code to update the UI goes here, e.g. 
    activityIndicator.stopAnimating() 
}) 

私が持っている:で、おおよそのオーディオと同じ時間が聞かれるUIを更新するために - 特に再生の第二の1/3の後に - 私たちは、再生の開始時にブロックを実行するために、境界の時間を使用しました弊社のブログのアプローチ(およびサンプルXcodeプロジェクト)の詳細についてもう少し詳しくお聞かせください。http://www.artermobilize.com/blog/2017/02/09/detect-when-ios-avplayer-finishes-buffering-using-swift/

関連する問題