模索するmusicPlayer.currentPlaybackTimeを設定し、MPMusicPlayerControllerを使用してその効果を取るために二とり

StackOverflow https://stackoverflow.com/questions/2379165

質問

私はスクラバーとして機能UISliderを持っています。親指は、私は次のことを実行引きずられたようます:

- (void) _seekTo:(double)playbackTime {
     mPlayer.currentPlaybackTime = playbackTime;
}
罰金に動作します。

は、音楽が前方に努めます。親指を解放すると、私は同期してUISliderを保つために、時間の更新を送信するためにNSTimerを再起動します。問題は、親指を解放すると、最初のいくつかのコールバックは、前回値が含まれている、です。これは、新しい値に戻る前に、元の位置に戻ってジャンプする親指の原因となります。非常に見苦しいます。

誰もが、この動作での経験や是正するための方法がありますか?あなたはそれが異常これを示したい場合、私は、サンプルプロジェクトを供給することができます。

役に立ちましたか?

解決

あなたが求めて起動したときに、既にバッファ内のデータが復号化されるので、

は多分それです。あなたは、前方分を求めたが、オーディオの数ミリ秒は、バッファ内にあります、そしてこれらのバケットを再生するとき、プレイヤーは現在、ファイル内の位置を報告します。だけにして更新された位置から新しいバケットを来て、マーカーが動作するように開始します。 (理論だけ。)

あなたは、単に手で中間データをフィルタリングすることができませんでしたか?あなたはので、多分あなたは変数に新しい位置を保存し、それらが快適に近い新しいスライダ位置に到達するまでのプレーヤーから更新を無視することができ、あなたはスライダーを使用して飛び込んしているどのくらい知っています。 (理にかなっている希望。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top