模索するmusicPlayer.currentPlaybackTimeを設定し、MPMusicPlayerControllerを使用してその効果を取るために二とり
-
24-09-2019 - |
質問
私はスクラバーとして機能UISliderを持っています。親指は、私は次のことを実行引きずられたようます:
- (void) _seekTo:(double)playbackTime {
mPlayer.currentPlaybackTime = playbackTime;
}
罰金に動作します。は、音楽が前方に努めます。親指を解放すると、私は同期してUISliderを保つために、時間の更新を送信するためにNSTimerを再起動します。問題は、親指を解放すると、最初のいくつかのコールバックは、前回値が含まれている、です。これは、新しい値に戻る前に、元の位置に戻ってジャンプする親指の原因となります。非常に見苦しいます。
誰もが、この動作での経験や是正するための方法がありますか?あなたはそれが異常これを示したい場合、私は、サンプルプロジェクトを供給することができます。
解決
あなたが求めて起動したときに、既にバッファ内のデータが復号化されるので、
は多分それです。あなたは、前方分を求めたが、オーディオの数ミリ秒は、バッファ内にあります、そしてこれらのバケットを再生するとき、プレイヤーは現在、ファイル内の位置を報告します。だけにして更新された位置から新しいバケットを来て、マーカーが動作するように開始します。 (理論だけ。)
あなたは、単に手で中間データをフィルタリングすることができませんでしたか?あなたはので、多分あなたは変数に新しい位置を保存し、それらが快適に近い新しいスライダ位置に到達するまでのプレーヤーから更新を無視することができ、あなたはスライダーを使用して飛び込んしているどのくらい知っています。 (理にかなっている希望。)
所属していません StackOverflow