0

MPMoviePlayerController をプログラムされた endPlaybackTime に到達させ、初期時間、現在時間、終了時間を再割り当てして再生を「再開」しようとしています。

つまり、最初に再生します。たとえば、開始から 4 秒まで再生し、停止/一時停止してから、再開して 4 秒から 8 秒まで再生します。

しかし、current、initial、および endPlaybackTimes を再割り当てして [mplayer play] を実行すると、デバッグ メッセージが 2 回目の再生後に新しい時間を確認しても、ビデオは元の時間 (開始から 4 秒) から再開され、元の終了時間まで再生されます。

NSURL *fileURL = [NSURL fileURLWithPath:filepath];
_mplayer3 = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
_mplayer3.controlStyle = MPMovieControlStyleNone;
[_mplayer3.view setFrame: self.view.bounds];
[self.view insertSubview:_mplayer3.view belowSubview:_TopBrag];
_mplayer3.endPlaybackTime = 4.0;
[_mplayer3 setShouldAutoplay:NO];
[_mplayer3 prepareToPlay];
[_mplayer3 view].userInteractionEnabled=YES;
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(parallaxDownDidFinish)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:_mplayer3];
[_mplayer3 play];

終了通知では、正しく動作しているように見えるジェスチャ認識機能が作成されています。ジェスチャ認識エンジンで:

_mplayer3.initialPlaybackTime=_mplayer3.endPlaybackTime;
_mplayer3.currentPlaybackTime=_mplayer3.endPlaybackTime;
_mplayer3.endPlaybackTime+=4.0;
if (_mplayer3.endPlaybackTime > _mplayer3.duration)
    _mplayer3.endPlaybackTime = _mplayer3.duration;
[_mplayer3 play]

再生後の NSLogs は時間が望ましいものであることを示唆していますが、ビデオは 4 から 8 ではなく 0 から 4 で再生されます。

どんな助けにも感謝します

4

2 に答える 2

1

MPMoviePlayerControllerinitialPlaybackTime新しいインスタンスで使用されていない場合は遵守しません。これを機能させるには、プレーヤーを解放して再割り当て/割り当てる必要があります。あなたがする必要があるのは、プレーヤーが続行する必要がある場合、質問に示されている最初のコードを再利用することだけです.


アップデート:

プレーヤー ビューをアクティブに保ちたいと考えているようで、標準のユーザー インターフェイスを使用していないため、AVPlayer代わりに使用することをお勧めします。それははるかに柔軟であり、あなたの仕事にとっては正しい選択のようです.

于 2013-03-21T14:08:31.870 に答える
0

うまくいくはずなので、何が問題なのかわかりません。問題は、あなたがIOS 6を使用していることだと思います。IOS 6では、そのような小さな変更を行うことはできませんが、スワイプで最初の再生時間を9以上で動作するはずです....

試してから教えてください;)

于 2013-03-21T16:23:53.170 に答える