特定の時間に映画を一時停止する方法は?IOS

私は与えられた時間に映画を一時停止し、何度も何度も何度も何度も何度も何度も行動を続けたいと思っています。 私はこのようにNSTimerを試してみました:

#define Timer 0.05
#define Accuracy 0.025

pauseTimeArray = [NSArray arrayWithObjects:[NSNumber numberWithFloat:5.00],[NSNumber numberWithFloat:10.00],[NSNumber numberWithFloat:15.00] , nil];


    [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(timeAction) userInfo:nil repeats:YES];

- (void)timeAction{

if (_moviePlayer.playbackState == MPMoviePlaybackStatePlaying) {

    NSNumber * positionNum = [NSNumber numberWithFloat:_moviePlayer.currentPlaybackTime];

    float positionFloat = [positionNum floatValue];

    for (NSNumber * pauseNum in _pauseTimeArray) {

        float pauseFloat = [pauseNum floatValue];

        float differentFloat = fabsf(pauseFloat - positionFloat);

        if (differentFloat < Accuracy) {
            [_moviePlayer pause];
        }
    }
}

}

And when i paused and play again , it occasionally paused. and the differentFloat < Accuracy.

誰かがNStimerを使わずに別の理想を与えることができるか、それとも何か他のものを与えることができます。

0

1 答え

あなたのアプローチは良いですが、それは正しく動作するためにいくつかの改善が必要です。 pauseFloat +/- Accuracy の範囲で positionFloat をチェックする代わりに、最後の一時停止時間をチェックポイントとして保持します。 positionFloat がこのチェックポイントより大きい場合は、ムービーを一時停止して次のチェックポイントを設定します。

pauseTimeArray = [NSArray arrayWithObjects:[NSNumber numberWithFloat:5.00],[NSNumber numberWithFloat:10.00],[NSNumber numberWithFloat:15.00] , nil];
uint currentCheckpoint = 0;

[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(timeAction) userInfo:nil repeats:YES];

- (void)timeAction{

if (_moviePlayer.playbackState == MPMoviePlaybackStatePlaying) {

    NSNumber * positionNum = [NSNumber numberWithFloat:_moviePlayer.currentPlaybackTime];

    float positionFloat = [positionNum floatValue];

        float pauseFloat = [[pauseTimeArray objectAtIndex: currentCheckpoint] floatValue];

        if (positionFloat > pauseFloat) {
            [_moviePlayer pause];
            currentCheckpoint++;
        }
    }
}

もちろん、currentCheckpointがpauseTimeArray境界内にあるかどうかを確認してください。

3
追加された
ありがとうございます。私はとても愚かです。
追加された 著者 Wang Yanchao,